/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
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
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste