Christian Seiler: Ressourcenschonend die letzten 10 Zeilen einer Textdatei ausg.

Beitrag lesen

Hallo Michael,

Hast Du mal einen Benchmark-Vergleich gegenüber dem normalen "tail" gemacht? ;-)

Ähem:

real    0m4.306s
user    0m2.300s
sys     0m1.470s

;-)

Wobei ich hier noch sagen muss, dass ich jedes Mal den PHP-Interpreter neu geladen habe, d.h. wenn ich das Script nur per include() einbinden würde, dann wären _beide_ Scripte sicherlich auch noch etwas schneller, ob in dieser Größenordnung vermag ich nicht zu sagen. (vielleicht probiere ichs noch, mal sehen)

Wie plattformspezifisch ist Deine Schnittstelle zum Lesen der Blockliste einer Datei?

Gar nicht plattformspezifisch. Die PHP-Funktion stat() ist überall dort verfügbar, wo PHP läuft. Sie liefert einen Array zurück. Der Wert mit dem Index 12 enthält die Blockgröße des Dateisystems; falls diese nicht verfügbar ist, steht dort -1. Ich nehme in diesem Fall eine Blockgröße von 1 KB an. Sonst verwende ich nur Funktionen aus ANSI C, die auch in PHP zur Verfügung stehen; d.h. wenn ich das Programm nach C portieren würde, dürfte es auf allen Plattformen mit ANSI-C-Kompiler laufen, sofern ich mir etwas für den stat()-Aufruf ausdenke.

(Das ist ja wohl der Knackpunkt - der Rest dürfte nicht mehr schwierig zu implementieren sein ... abgesehen davon, daß man die gelesenen Sätze irgendwie verketten muß, wenn der letzte Block nicht ausreicht.)

In meinem PHP-Script ist das bereits implementiert.

Viele Grüße,
Christian