Laufzeitmessung /CPU-Zeit
flotte
- perl
Wie kann ich die Laufzeit eines Scriptes messen?
Hintergrund:
Bei Schlund + Partner gibt es eine CPU-Zeitbegrenzung fuer Scripte von 6 sec. Ich moechte nun fuer einige meiner Scripte testen, wie lange sie auf meinem loaken PC wirklich laufen. Vielleicht kann man dann auf die CPU-Laufzeit rueckschliessen... oder liege ich da ganz falsch?
Kann ich in diesen 6 sec ca. 500 Textdateien (je 200 Bytes gross) einlesen, in eine HTML-Tabelle konvertieren und auf den Browser ausgeben? Alle Dateien liegen im selben Verzeichnis?
Wer hat Erfahrungen mit Provider Schlund + Partner? Sind die zu empfehlen ? ... laut webhostlist.de sollen die ganz gut sein.
DANKE
Hie flotte,
Zeitmessungen einfach:
my($starttime) = time;
&machwas();
my($endtime) = time ;
print 'Das hat jetzt' . ($endtime-starttime) . 'sekunden gedauert!';
Pro:
+ Alles eingebaut.
Contra:
- recht ungenau, da nur Sekunden-Auflösung.
Zeitmessung genauer:
use Time::HiRes qw( gettimeofday tv_interval );
my($starttime) = [gettimeofday];
&machwas();
print 'Das hat jetzt' . tv_interval ( starttime) . 'sekunden gedauert!';
Pro:
+ arbeitet mit Millisekunden-Auflösung.
Contra:
- Modul mit C-Anteil. muß daher installiert werden.
Der Nachteil aller Lösungen ist m.E., daß diese Messungen nicht wirklich die CPU-Zeit ermitteln. Du kannst nur sagen, wie lange es gelaufen ist.
Ich weiß ja nicht, wie der Provider CPU-Zeit definiert, aber normalerweise ist das jene Zeit, welche das Programm wirklich die CPU benötigte, und nicht die Dauer der Laufzeit. (Multitasking)
so, jetzt hab ich es, glaub ich, gefunden.
use Benchmark;
$x=3;
cmpthese(0,{hier_muß_irgendwie_Dein_Code_rein});
Habs noch nie ausprobiert. Ich bin grade drübergestolpert. aber das gibt dir, wenn Du's richtig gemacht hast, auch die CPU-Zeit aus.
Dabei mußt Du Dir bewußt sein, daß ein Benchmark nur dann Sinn macht, wenn Du ungefähr die Gleichen Bedingungen hast, wie auf dem Zielsystem. Für Dich würde eventuell auch genügen, wenn Du schlechtere Bedingungen schaffen kannst, da Du ja nur wissen willst, ob's nicht zu lange dauert. Gültige Aussagen kannst Du aber nur machen, wenn Du auf dem Zielsystem bist.
Viel spaß noch
Klaus
Hullo
»» ....
use Benchmark;
$x=3;
cmpthese(0,{hier_muß_irgendwie_Dein_Code_rein});
»» ....
cmpthese vergleicht zwei Codestücke miteinander. Um die Laufzeit eines einzelnen Programmes zu messen sollte man soweit ich das überblicke timeit benutzen.
z.B.
$t = timeit(5, 'test');
führt 5 x 'test' aus und speichert das Ergebnis in $t.
Mit
print timestr($t);
lässt man sich dann die Zeiten ausgeben.
Gruss,
Thorsten
Wer hat Erfahrungen mit Provider Schlund + Partner? Sind die zu empfehlen ? ... laut webhostlist.de sollen die ganz gut sein.
Zu den anderen Problemen kann ich Dir ÜBERHAUPTNICHT helfen, aber ich werde bei Schlund mal anfragen...
Ansonsten habe ich 5 Pakete bei Schlund...
mit mehreren GIGABYTE Datentransfer im Monat....
Und ich bin rundum zufrieden...
TOP Service, Speed, Qualität, usw.
cu
Steffen