Thread Algorithmus für schnelles Indexieren von Dateien (10 answers)
Opened by perlcharly at 2007-06-21 10:35

topeg
 2007-06-22 01:08
#77714 #77714
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Ohne einene Indexdatei wirst du nicht viel schneller werden können. Da bei jedem Scriptstart der Index neu aufgebaut werden muß.

Wenn du aber einen Schon geparsten Index Lädst und nur die Änderungen hinzufügst, und den neuen Index für den nächsten Scriptstart speicherst, sparst du dir eine Menge Zeit. Über die Modifikationszeit kannst du herausfinden welche Dateien neu indiziert werden müssen.

Und wenn es wirklich Schnell gehen soll, eportiere den bisherigen Index mit Data::Dumper, oder etwas selbstgeschriebenen, in eine Datei und importiere es am Scriptanfang mit "eval" (oder ähnlichem z.B. "require" wenn du selbst was geschrieben hast.)

"Data::Dumper" und "eval" ist hier sehr paktisch, da der Perlinterpreter das Parsen der Indexdatei übernimmt und das sehr viel schneller macht als du es mit mit einem pure-perl Parser machen könntest.

Das ganze hat natürlich auch ein paar Haken.
So ist es nicht ganz risikolos "eval" zu benutzen. Dann könnte es Probleme geben, wenn das Script zeitgleich mehrfach gestartet wird, b.z.w. den neuen Index speichern wollen. (du mußt ein Fehlverhalten bei "open" und "print" abfangen, b.z.w. die geöffnete Indexdatei Sperren)

Einen schnelleren Weg wüßte ich nicht. Selbst mit einer Datenbank bist du langsamer. :-)

View full thread Algorithmus für schnelles Indexieren von Dateien