Herzlich willkommen im SEO Forum der ABAKUS Internet Marketing GmbH

Zum Inhalt

  • Leistungen
  • SEO-Wissen
  • Referenzen
  • SEO Agentur
Suchmaschinenoptimierung

Home


Profil


Suche


private Nachrichten


Mitglieder


Anmelden


Registrieren


Letzte Themen

Newsletter abonnieren
  • Schnellzugriff
    • Unbeantwortete Themen
    • Aktive Themen
    • Suche
  • Anmelden
  • Registrieren
  • ABAKUS Foren-Übersicht
  • Suche

registrieren registriertes Mitglied


Anzeige

Anzeige
Erweiterte Suche
 

PHP Effizienz: strpos auf String 10x schneller als in_array?

 PHP Skript für eine Umkreissuche gesucht

massen pagerank abfrage ohne das google rumzickt?

 
Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 24.05.2008, 12:48

ein string vergleich auf ' datum ' mit strpos in einem string ' datum datum datum ... ' (enthaelt z.b. 1521 daten) soll ca. 10 mal schneller sein als die suche mit in_array in einem array von 1521 zahlenwerten.
das sagen meine zeitmessungen, und ich staune nur noch..

dabei spielt es kaum eine rolle ob die zahlenwerte als keys (geringfuegig schneller, zugriff quasi dann via isset(arrayName[key]) - auch eine referenz auf den hash hilft nicht) oder values (in_array) vorliegen.

denke aber dass in_array u.U. selbst schon schneller ist, aber das definieren des arrays die ganze zeit wegfrisst. auch serialize bzw. unserialize fuehren zu keinem speedup!

nochmal: unterm strich ist das definieren eines strings und anwendung von strpos zur suche einer zeichenkette darin ca. 10mal schneller ist als das definieren eines einfachen arrays mit zahlen und suchen mittels in_array nach einer zahl. sowas kann ja eigentlich nicht sein (zahlenvergleiche MUESSTEN immer schneller sein als stringvergleiche - sind sie wohl auch, aber php verplempert wohl viel ZUVIEL zeit fuers definieren eines arrays!), ist aber so. das naehrt mal wieder meine "hassliebe" auf diese "sprache" ;)

suche eines datums in 1521 datensaetzen in pseudo-syntax, 10000 laeufe:

hashed double
if 1.oktett then array(2.oktett=>array(...),2.oktett=>..)
vergleich mit in_array nach zugriff ueber pseudo-hash
5.98043894768 s

pure trios as values
if 1. oktett then array(zahl,zahl,zahl...):
vergleich mit in_array
5.24863314629 s

pure trios as keys
if 1. oktett then array(zahl=>1,zahl=>1,...):
vergleich mit zugriff ueber pseudo-hash
4.91022896767 s

string mit daten, string-vergleich mit strpos the WINNER
if 1. oktett then string = ' datum datum datum ... ';
vergleich mit strpos auf ' datum '
0.598217010498 s

PS: mir ist klar dass diese messung ggf. je nach php & server config etc. anders ausfallen kann. daran kann man sich aber nicht orientieren wenn man eine loesung fuer alle (kleinster gemeinsamer nenner) sucht.
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

Anzeige von:

Die Antwort findest du hier: zum Archiv
  • Foren-Übersicht
  • Alle Cookies löschen
  • Kontakt
  • zum ABAKUS Archiv

Flat Style by Ian Bradley

Powered by phpBB® Forum Software © phpBB Limited

Deutsche Übersetzung durch phpBB.de

Datenschutz | Nutzungsbedingungen | Impressum

SEO Agentur | SEO Blog | SEO Online Tools | SEO Dienstleistungen | SEO Workshops | SEO Beratung | Backlinks kaufen | SEO Audit | SEO Tools gratis | SEO-Konkurrenzanalyse


Sie lesen gerade: PHP Effizienz: strpos auf String 10x schneller als in_array? - ABAKUS