|
| tid det tog at afvikle et perl program Fra : Allan Lohse \(techno~ |
Dato : 25-11-01 19:14 |
|
Hejsa
Er der nogen der kan fortælle mig hvilken komando man bruger til at tage tid
på et perl program.
Jeg kan ikke bruge "time" funktionen, da den kun giver sekunder, jeg skal
bruge værdien i milisekunder, eller lign.
Funktionen skal bruges til at tage tid på hentning af hjemmeside med wwwlib,
og det ville være rart at kunne få den mere precis, end med "time"
funktionen
- Allan Lohse
| |
Lars Thegler (25-11-2001)
| Kommentar Fra : Lars Thegler |
Dato : 25-11-01 21:22 |
|
On Sun, 25 Nov 2001 19:14:06 +0100, Allan Lohse wrote:
>
>Er der nogen der kan fortælle mig hvilken komando man bruger til at tage tid
>på et perl program.
>
>Jeg kan ikke bruge "time" funktionen, da den kun giver sekunder, jeg skal
>bruge værdien i milisekunder, eller lign.
Fra perlfaq8:
How can I measure time under a second?
In general, you may not be able to. The Time::HiRes
module (available from CPAN) provides this functionality
for some systems.
If your system supports both the syscall() function in
Perl as well as a system call like gettimeofday(2), then
you may be able to do something like this:
require 'sys/syscall.ph';
$TIMEVAL_T = "LL";
$done = $start = pack($TIMEVAL_T, ());
syscall( &SYS_gettimeofday, $start, 0) != -1
or die "gettimeofday: $!";
##########################
# DO YOUR OPERATION HERE #
##########################
syscall( &SYS_gettimeofday, $done, 0) != -1
or die "gettimeofday: $!";
@start = unpack($TIMEVAL_T, $start);
@done = unpack($TIMEVAL_T, $done);
# fix microseconds
for ($done[1], $start[1]) { $_ /= 1_000_000 }
$delta_time = sprintf "%.4f", ($done[0] + $done[1] )
-
($start[0] + $start[1] );
/Lars
| |
Thorbjoern Ravn Ande~ (25-11-2001)
| Kommentar Fra : Thorbjoern Ravn Ande~ |
Dato : 25-11-01 21:45 |
|
xyz@xyz.xyz (Lars Thegler) writes:
> On Sun, 25 Nov 2001 19:14:06 +0100, Allan Lohse wrote:
> >
> >Er der nogen der kan fortælle mig hvilken komando man bruger til at tage tid
> >på et perl program.
> >
> >Jeg kan ikke bruge "time" funktionen, da den kun giver sekunder, jeg skal
> >bruge værdien i milisekunder, eller lign.
Et andet alternativ er "Benchmark" pakken, som kan udfoere en given
sekvens mange, mange gange og give gennemsnitstiden. Det giver
generelt trovaerdige resultater.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk
| |
J N (26-11-2001)
| Kommentar Fra : J N |
Dato : 26-11-01 17:40 |
|
Allan Lohse (techno.dk) wrote:
> Hejsa
>
> Er der nogen der kan fortælle mig hvilken komando man bruger til at tage tid
> på et perl program.
>
Forudsat du er på linux/unix, på kommandolinjen:
time dit-perl-program
Eksempel:
> time perl -v
real 0m0.039s
user 0m0.000s
sys 0m0.000s
> Jeg kan ikke bruge "time" funktionen, da den kun giver sekunder, jeg skal
> bruge værdien i milisekunder, eller lign.
>
> Funktionen skal bruges til at tage tid på hentning af hjemmeside med wwwlib,
> og det ville være rart at kunne få den mere precis, end med "time"
> funktionen
>
> - Allan Lohse
>
>
>
| |
|
|