Artikel im Internet unter http://www.hidemail.de/blog/times-perl.shtml.
Samstag, 12.5.2007, 19:45:17 Uhr

Zeitkontrolle eines Scriptes - times() in Perl


Die Funkton times() ermittel die Laufzeit eines Prozesses und, wenn vorhanden, seiner Kindprozesse. Dabei wird unterschieden zwischen einer "system time" und "user time".
Der Wert Usertime gibt den Zeitwert an, den der Prozess selbst gelaufen ist, die Systemtime den Zeitwert, den das Betriebssystem benötigt hat.
Als Summe beider Werte erhält man die tatsächlich verbrauchte CPU-Zeit.

Die gemessenen Zeiten basieren auf so genannten Uhrenticks. Die Anzahl der Uhrenticks pro Sekunde ist auf Unix-Systemen einstellbar (TICKSPERSEC in der Datei conf.h).

Syntax
@liste=times();
Wobei @liste folgende Werte enthält:
($user_time_hauptprozess, $system_time_hauptprozess [,$user_time_Kind1,$system_time_Kind1,$user_time_Kind2,$system_time_Kind2...])


use strict;
use CGI::Carp qw(fatalsToBrowser);

my $x;
for(my $i = 0; $i < 1000; $i++) {
$x+ = $i * $i / time();
}

my ($Systemzeit, $Userzeit) = times();
my $CPU_Zeit = $Systemzeit + $Userzeit;

print "verbrauchte Systemzeit: $Systemzeit Sekunden\n";
print "verbrauchte Userzeit: $Userzeit Sekunden\n";
print "verbrauchte CPU-Zeit: $CPU_Zeit Sekunden\n";



Das obige Beispiel rechnet etwas herum und gibt dann die ermittelten Zeit aus.

Während der times()-befehl im "normalen" Alltag eher selten gebraucht wird, kann er in speziellen Fällen Auskunft über die Laufzeiten eines Scriptes geben.
Allerdings gibt es auch spezielle Module, z.B. Benchmark, welches ich hiermit jeden ans Herz legen möchte, der seine Scripte auf die Ausführungsgeschwindigkeit hin testen will.


Artikel im Internet unter http://www.hidemail.de/blog/times-perl.shtml.