[Perl] Vitesse entre grep et defined

Vitesse entre grep et defined [Perl] - Perl - Programmation

Marsh Posté le 25-06-2003 à 11:25:49    

Slt
 
Je souhaiterai savoir le quel serait le plus rapide et le moins consommateur en memoire:
 

Code :
  1. for $ligne (@Unix_dir2){
  2. chomp;
  3. @comp = grep /$ligne/, @Msg_dir;


 

Code :
  1. while (defined($Unix_dir2) || defined($Msg_dir)){
  2. if ( defined($user)){
  3.  print $Unix_dir2=$Msg_dir;
  4.  }
  5.         }


Message édité par vfqs le 25-06-2003 à 11:27:28
Reply

Marsh Posté le 25-06-2003 à 11:25:49   

Reply

Marsh Posté le 25-06-2003 à 14:55:01    

Up  :sweat:

Reply

Marsh Posté le 25-06-2003 à 22:30:04    

tu peux utiliser le module Benchmark pour comparer la vitesse.
ca va lancer chaque bout de code un tres gand nombre de fois et claculer le temps pris.
http://search.cpan.org/author/JHI/ [...] nchmark.pm
 
Tu peux aussi faire ca "à la main" avaec Time::HiRes:
 

Code :
  1. use Time::HiRes qw(gettimeofday);
  2. (...)
  3. my $iterations = 10000;
  4. my $t1 = gettimeofday();
  5. for (1..$iterations) {
  6.     for $ligne (@Unix_dir2){
  7.         chomp;
  8.         @comp = grep /$ligne/, @Msg_dir;
  9.     }
  10. }
  11. print "Version1: ",gettimeofday() - $t1, "s";
  12. my $t2 = gettimeofday();
  13. for (1..$iterations) {
  14.     while (defined($Unix_dir2) || defined($Msg_dir)){
  15.         if ( defined($user)){
  16.             print $Unix_dir2=$Msg_dir;
  17.         }
  18.     }
  19. }
  20. print "\nVersions2: ",gettimeofday() - $t2, "s";

Reply

Marsh Posté le 26-06-2003 à 10:27:54    

pospos a écrit :

tu peux utiliser le module Benchmark pour comparer la vitesse.
ca va lancer chaque bout de code un tres gand nombre de fois et claculer le temps pris.
http://search.cpan.org/author/JHI/ [...] nchmark.pm
 
Tu peux aussi faire ca "à la main" avaec Time::HiRes:
 

Code :
  1. use Time::HiRes qw(gettimeofday);
  2. (...)
  3. my $iterations = 10000;
  4. my $t1 = gettimeofday();
  5. for (1..$iterations) {
  6.     for $ligne (@Unix_dir2){
  7.         chomp;
  8.         @comp = grep /$ligne/, @Msg_dir;
  9.     }
  10. }
  11. print "Version1: ",gettimeofday() - $t1, "s";
  12. my $t2 = gettimeofday();
  13. for (1..$iterations) {
  14.     while (defined($Unix_dir2) || defined($Msg_dir)){
  15.         if ( defined($user)){
  16.             print $Unix_dir2=$Msg_dir;
  17.         }
  18.     }
  19. }
  20. print "\nVersions2: ",gettimeofday() - $t2, "s";



Merci je vais essayer de suite.  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed