Schrift
[thread]5986[/thread]

Geschwindigkeit von Scripts prüfen

Leser: 1


<< >> 6 Einträge, 1 Seite
stb2050
 2003-12-28 13:54
#77161 #77161
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi Ihr,

wie kann ich eigentlich prüfen, wie schnell mein Script auf dem Server arbeitet?

Möchte gerne meinen Code optimieren und testen, ob das Script mit ein paar Änderungen schneller läuft.

Wie kann ich das anstellen, gibts da vielleicht nen shell-befehl ist was ähnliches? vielleicht auch ein extrascript dafür?

viele grüße & vielen dank
Steffen
Strat
 2003-12-28 14:01
#77162 #77162
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
dafuer gibt's das Modul benchmark, z.B.
am anfang vom Code oder vor der Aenderung:
Code: (dl )
1
2
use Benchmark;
my $benchmarkStart = Benchmark->new();

und am Ende (oder nach der Aenderung):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
my $benchmarkEnd = Benchmark->new();
my $diff = Benchmark::timediff($benchmarkEnd, $benchmarkStart);
my $str = Benchmark::timestr($diff);

my ($cpuTime, $exectime);
if ($str =~ /(\d+)\s*wallclock secs \(\s*?(\d*?\.\d*?)\s*usr\s*\+\s*(\d*?\.\d*?)\s/i) {
$cpuTime = $2; $execTime = $1;
# printf ("Execution time: ~ %.0f seconds\nCPU-Time : %.2f\n", $1, $2);
} # if
print "CPUTIME: $cpuTime, EXECTIME: $execTime\n";
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
stb2050
 2003-12-28 14:44
#77163 #77163
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi Strat,

danke, hätte nicht gedacht, dass es so simpel ist.

Viele Grüße
Steffen
Free Faq
 2003-12-28 14:53
#77164 #77164
User since
2003-09-10
141 Artikel
BenutzerIn
[default_avatar]
Für was steht "EXECTIME" genau? Würde sagen für Ausführzeit, aber bei mir steht da immer 0 oder 1 :rock: Also kann es das nicht sein.
Haut mich nicht, ich bin ein Noob!
[E|B]
 2003-12-28 15:15
#77165 #77165
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Mit Time::HiRes geht das AFAIK auch!
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
ptk
 2004-01-05 12:42
#77166 #77166
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ich glaube gelesen zu haben, dass Time::HiRes unter Windows nicht funktioniert, bzw. hat man dort nur eine Aufloesung von einer Sekunde.

Ausserdem sind die Anwendungsbereiche von Time::HiRes und Benchmark unterschiedlich: das letztere Modul berechnet hauptsaechlich die Zeit, die der Prozess bei der CPU beansprucht, waehrend Time::HiRes die tatsaechlich verflossene Zeit berechnet. Das macht einen Unterschied, wenn man auf einer Maschine mit vielen laufenden Prozessen testet.
<< >> 6 Einträge, 1 Seite



View all threads created 2003-12-28 13:54.