Tom: Warum ist meine PHP Seite so langsam?

Beitrag lesen

Hello,

Welche Größe hat denn der Buffer? Ist er 256Byte groß oder 4096Bytes
oder 1MByte oder noch mehr?

Das ist absolut abhängig vom System und der Implementierung. Übrigens
kommt häufig sogar noch ein Buffer im Kernel dazu, so dass noch mehr
gepuffert wird.

Und damit bekommen wir ein nicht nachvollziehbares, kaum noch berechenbares Quantisierungsproblem, dass zudem noch durch die Dutzende von Rahmenbedingungen, die ich oben im Thread nur ansatzweise angedeutet habe, beeinflusst wird.

Außerdem ist ja noch zu berücksichtigen, ob autoflush aktiviert ist bei PHP oder irgend einer tieferen Schicht des Systems, auf die PHP selber gar keinen Einfluss hat. Das würde nämlich bei alternierenden Lese-Schreiboperationen zu einer explosionsartig ansteigenden Verarbeitungsdauer führen.

Generell ahbe ich für die Praxis herausgefunden, dass bei reinen Leseoperationen das Auslesen am Stück von Blöcken bis ca. 64k (also der klassischen Segmentgröße im PC-Konzept) die Sache gegenüber zeilenweisem Lesen beschleunigt.

Wenn Du den Test, den Du für die "loop invariant optimization" durchgeführt hast vielleicht bei Gelegenheit nochmals für den Vergleich von

while ($_file[] = fgets());    # Pseudo!

und

$_file = file();

durchführen könntest, dann wäre ich Dir dankbar.

Die Datei sollte dabei aus mindestens 1000 Zeilen unterschiedlicher Länge bestehen. Vielleicht nimmt man einfach eine RFC *gg*

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau