Juin 092011
 

voici une fonction permettant de calculer le temps qu’utilise un élément d’un script perl.

Download : calcultime.pl

#!/usr/bin/perl
use strict ;
use warnings ;
use Time::HiRes qw( gettimeofday tv_interval) ;
 
sub calcultime {
	my ($seconds, $microseconds) = gettimeofday;
	if( !ref($_[0]) ) {
		my $ref = [ ($seconds, $microseconds) ] ;
		return ($ref) ;
	}
	else {
		my ($oldtime, $name) = @_ ;
		my ($oldseconds, $oldmicroseconds) = @$oldtime ;
		my $elapsed = tv_interval( [$oldseconds, $oldmicroseconds, [$seconds, $microseconds]] );
		return($elapsed);
	}
}

utilisation:

  • vous déclarez les variables dans lesquelles seront enregistrés les temps d’éxécution
  • vous utilisez deux fois la fonction avec cette variable, une fois pour initialiser, une seconde fois pour récupérer le retour :
  • vous affichez le resultat avec printf:
my ($compteur_1, $compteur_2, $compteur_3) ;

$compteur_1 = calcultime($compteur_1) ;
	for(my $i=0 ; $i<10 ; $i++) {
		next ;
	}
$compteur_1 = calcultime($compteur_1) ;

$compteur_2 = calcultime($compteur_2) ;
	for(my $i=0 ; $i<1000 ; $i++) {
		next ;
	}
$compteur_2 = calcultime($compteur_2) ;

$compteur_3 = calcultime($compteur_3) ;
	for(my $i=0 ; $i<100000 ; $i++) {
		next ;
	}
$compteur_3 = calcultime($compteur_3) ;

printf("Temps passe sur la 1ere boucle : %fs\n",$compteur_1) ;
printf("Temps passe sur la 2eme boucle : %fs\n",$compteur_2) ;
printf("Temps passe sur la 3eme boucle : %fs\n",$compteur_3) ;

ça donne:

$ ./time.pl
Temps passe sur la 1ere boucle : 0.000044s
Temps passe sur la 2eme boucle : 0.000364s
Temps passe sur la 3eme boucle : 0.034923s
 Publié par à 15 h 54 min  Taggué avec :

 Laisser un commentaire

Vous pouvez utiliser ces tags et attributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requis)

(requis)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.