Eternius: Seltsame Skriptlaufzeit Messung

Beitrag lesen

hallo,

so wie ich das sehe sieht das folgendermaßen aus:
scenario a)
startzeitpunkt wird gesetzt
[hier macht dein skript irgendwas]
dann schicke html an client
schreibe endzeitpunkt - startzeitpunkt.
exit;

scenario b)
startzeitpunkt wird gesetzt
[hier macht dein skript irgendwas]
schreibe endzeitpunkt - startzeitpunkt.
dann schicke html an client
exit;

das lustige daran ist, dass es egal ist und das hängt mit dem buffering zusammen.
Wegen performance gründen schreibt das betriebsystem / schreiben programme ihre daten nicht sofort auf die platte.
das ist wie wenn du dreckige wäsche hast und du wäscht ja auch nicht sofort eine socke wenn du die dreckig ist.
stell dir mal vor alle programme würden ständig gleich auf die platte schreiben.

dein skript wird langsam, weil
 du zwei unterschiedliche Filehandles verwendest, von denen beide gebuffert sind. STDOUT und dein timefile.
damit ein buffer aber auch vernünftig funktioniert, muss er eine bestimmte grösse haben, in dem falle timefile ist sehr wahrscheinlich grösser als deine zeit zeichenkette.

-------
also gehen wir von einer schnellen verbindung aus:
du schickst bufferweise das html an den client.
das geht schnell, weil schnelle verbindung.
dann schreibst du gebuffert deine zeitstring.
dein programm kann jetzt aufhören und erst jetzt wird der buffer in dein timefile geschrieben, weil es sich bis jetzt ja nicht gelohnt hat.

langsame verbindung:

dein skript wird nicht vorher aufhören das html an den client zu senden, bis dieser abbricht, oder dein skript fertig ist.
und hier kann dein skript die daten nicht so schnell rausschmeissen, weil langsame verbindung, oder packete gehen verloren.
aber auch hier wird erst am ende des skriptes der zeitstring buffer gelehrt in deine datei.

deswegen dauert das länger.

gruss

--
no strict;
no warnings;
Selbstcode: (_*_) ^_^ ( . ) ( . ) :-(bla)