Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6430[/thread]

Laufzeit bestimmen

Leser: 2


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
BungeeBug
 2004-07-25 16:43
#84910 #84910
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Hi,

ich versuche gerade für mehere Programm möglichst genau fest zustellen, wielang ein einzelnes Programm läuft. Dazu habe ich bis jetzt nur die Funktion times(); gefunden. Ich bin mir aber nicht sicher ob das die Richtige ist. Unter Pascal hab ich für sowas GetTickCount(); benutzt aber sowas scheint es ja in Perl nicht zugeben. Welches ist also die Funktion, mit der das geht. Die Zeit wird warscheinlich im µs Bereich liegen.
MfG
BungeeBug
esskar
 2004-07-25 16:46
#84911 #84911
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
schau dir mal das benchmark module an
BungeeBug
 2004-07-25 17:00
#84912 #84912
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Cool danke. Achso dein Ava is kaputt ...
MfG
BungeeBug
BungeeBug
 2004-07-25 21:12
#84913 #84913
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Weiß denn einer, wie ich das Benchmark Modul zu einer verständlichen Aussage bewege? Wenn ich am Ende timestr(); aufrufe, kommt ne für mich cryptische Aussage bei rum. Alles was ich wissen muss ist wie lange das Script jetzt gebraucht hat.
MfG
BungeeBug
[E|B]
 2004-07-25 21:59
#84914 #84914
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Quote
Alles was ich wissen muss ist wie lange das Script jetzt gebraucht hat.


Da würde dann doch eher Time::HiRes nehmen.

Unter Linux kannst du mit dem folgenden Newliner sogar Benchmarken:

Code: (dl )
perl -MBenchmark -e 'timethis (1000000, sub { print "Test" } );'


Ansonsten ist es im Code genauso, bei mehrere Benchmarks timethese() verwenden.
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]
BungeeBug
 2004-07-25 22:41
#84915 #84915
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
47 wallclock secs ( 0.32 usr +  0.09 sys =  0.41 CPU) @ 2439024.39/s (n=1000000)
Aber was sagt mir das jetzt? ich hatte sowas wie 39sec erwartet. Da weis ich genau wo ich dran bin aber das da ... keine Ahnung.
MfG
BungeeBug
betterworld
 2004-07-25 22:59
#84916 #84916
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Es hat insgesamt 47 Sekunden (auf der Wanduhr = wallclock) gedauert. Davon wurde der CPU 0.41 Sekunden mit dem Programm belastet (die restliche Zeit hat es geschlafen bzw. andere Programme haben gearbeitet). 0.32 Sekunden hatte das Programm die direkte Kontrolle ueber den CPU, und 0.09 Sekunden lang wurden kernel calls ausgefuehrt, die das Programm in Auftrag gegeben hatte.
BungeeBug
 2004-07-25 23:16
#84917 #84917
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Gut, dann ist mein neustes Problem nur die CPU Zeit aus zulesen. Weiß einer wie das geht?! Es muss ja ne Möglichkeit geben nur die CPU Zeit ausgegen bekommen. Man kann das ganze ja "formatiern" aber die Parameter sind mir nicht bekannt. Ich kenn leider nur den "ALL" - Parameter aber der gibt ja alles aus ...
MfG
BungeeBug
ptk
 2004-07-26 13:23
#84918 #84918
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn du nur die CPU-Zeit brauchst, dann ist times() die richtige Funktion. Benchmark ist mehr zum Vergleichen der Laufzeit von unterschiedlichen Codeschnipseln gedacht.
BungeeBug
 2004-07-26 14:29
#84919 #84919
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Das hatte ich ja am Anfang schon in erwägung gezogen.
MfG
BungeeBug
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2004-07-25 16:43.