Geschwindigkeit und Kombinationen von Befehlen...?
rabby
- php
0 AndreD
hallo welt!
noch immer arbeite ich an ner spider-suchmaschine und nun bleibt mir nur noch die möglichkeit, das script nochmal zu ändern, um seine ausführungsgeschwindigkeit zu verbessern, denn die große aller zu durchsuchenden dateien beträgt fast 8 MB ! :-(
nun ist zuerst mal die frage, ob es reichen könnte, manche andere befehle zu nutzen, welche evt schneller sind anstelle dieser:
opendir, readdir, array_merge, fgets, preg_replace, preg_match, preg_replace, str_replace ?
hab auch gehört, dass man diesen teil ersetzen sollte:
if (eregi("^.{1,2}$",$file))
{
continue;
}
dann wäre noch interessant, zu wissen, ob es sich rentiert, z.b. immer nach nem bestimmten string (im letzten viertel der jeweils ca 11 kb großen dateien) den rest "abzuschneiden",um somit den string zu verkleinern, der durchsucht werden soll.
oder macht dies das script noch zeit-aufwändiger...?
falls all dies nicht weiterhilft, bleibt mir nichts übrig, als alle dateien in einen einzigen(!) string zu schreiben, und danach nur EINmal den scriptteil auszuführen, welcher nach nem string sucht...
angeblich ist dies rentabel im bezug auf zeit...
wie stehts damit?
danke für Eure hilfe
Hallo Rabby,
hab auch gehört, dass man diesen teil ersetzen sollte:
if (eregi("^.{1,2}$",$file))
{
continue;
}
Wenn Du auf die Funktion eregi() anspielst kann ich das in soweit bestätigen als das ich auch schon gelesen habe das man lieber die entsprechenden, von Pearl abgeleiteten Funktionen preg_match(), preg_replace() usw. verwenden solle da diese wohl einiges schneller sind? Hab das halt mal vor langer Zeit in einem Buch gelesen, seitdem nehme ich eigentlich immer die p*-Funktionen...
dann wäre noch interessant, zu wissen, ob es sich rentiert, z.b. immer nach nem bestimmten string (im letzten viertel der jeweils ca 11 kb großen dateien) den rest "abzuschneiden",um somit den string zu verkleinern, der durchsucht werden soll.
oder macht dies das script noch zeit-aufwändiger...?
Interessante Idee, das solltest Du einfach mal - wie eigentlich alle Deine Versuche - mittels verschiedenen Testchases austesten und mit Hilfe einer Funktion welche die Dir die Zeit stoppt auswerten. Du kannst Dir entweder eine solche Funktion selber hacken, es gibt aber auch glaub bei PEAR eine recht umfangreiche Klasse mit der Du sowas realisieren kannst... http://pear.php.net/package-info.php?package=Benchmark sollte das sein was Du brauchen kannst...
falls all dies nicht weiterhilft, bleibt mir nichts übrig, als alle dateien in einen einzigen(!) string zu schreiben, und danach nur EINmal den scriptteil auszuführen, welcher nach nem string sucht...
angeblich ist dies rentabel im bezug auf zeit...
wie stehts damit?
Hört sich für mich nicht wirklich schnell an... Ich würde es an Deiner Stelle mittels Benchmarking durchtesten. Ich schätze mal (vorsichtig) dass Dir niemand eine verbindliche Antwort auf Deine Lösungsansätze geben kann.
Weiterhin viel Spass,
Gruss AndreD