Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2841 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Optimisation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] Optimisation

n°371726
vfqs
Posté le 25-04-2003 à 12:58:08  profilanswer
 

Slt all,
 
Voila, je souhaite avoir votre avis sur la situation suivante
 

Code :
  1. @tab=`cat 1.txt`;
  2. for $ligne(@tab){
  3.     ($a,$b,$c,$d)= split (/:/, $ligne);


 
Concernant une substitution sur la valeur de $a et $d, le plus optimal serait de faire une substitution sur $ligne ou sur $a et $d suivant le split ?
 
ps: la substitution est identique pour $a et $d. :)
 
A mon avis, le mieux est de le faire sur chaque variable, ainsi la commande evitera de balayer la ligne entière.


Message édité par vfqs le 25-04-2003 à 12:59:29
mood
Publicité
Posté le 25-04-2003 à 12:58:08  profilanswer
 

n°371750
Aricoh
gentil mais fo po pousser
Posté le 25-04-2003 à 13:30:44  profilanswer
 

vfqs a écrit :

Slt all,
 
Voila, je souhaite avoir votre avis sur la situation suivante
 

Code :
  1. @tab=`cat 1.txt`;
  2. for $ligne(@tab){
  3.     ($a,$b,$c,$d)= split (/:/, $ligne);


 
Concernant une substitution sur la valeur de $a et $d, le plus optimal serait de faire une substitution sur $ligne ou sur $a et $d suivant le split ?
 
ps: la substitution est identique pour $a et $d. :)
 
A mon avis, le mieux est de le faire sur chaque variable, ainsi la commande evitera de balayer la ligne entière.

si tu ne veux juste que récupérer $a et $d + permuter $d dans $a et vice versa, tu peux faire ça :
 

Code :
  1. @tab=`cat 1.txt`;
  2. for $ligne(@tab){
  3.     if ($ligne =~ /^(.+):.+:.+:(.+).$/) {   
  4.         $a = $2;
  5.         $d = $1;
  6.     }
  7. }


Message édité par Aricoh le 25-04-2003 à 13:32:25
n°371766
vfqs
Posté le 25-04-2003 à 13:38:47  profilanswer
 

Euh...c pas trop ca que je veux. :)
 
En fait, je voulais savoir quelle serait le plus optimal entre ces des deux bouts de code:
 

Code :
  1. @tab=`cat 1.txt`;
  2. for $ligne(@tab){
  3.    ($a,$b,$c,$d)= split (/:/, $ligne);
  4.    $a=~ s/toto/titi/;
  5.    $d=~ s/toto/titi/;
  6.    }

 
 

Code :
  1. @tab=`cat 1.txt`;
  2. for $ligne(@tab){
  3.     $ligne=~ s/toto/titi/g;
  4.    ($a,$b,$c,$d)= split (/:/, $ligne);
  5.    }

 

n°371778
Aricoh
gentil mais fo po pousser
Posté le 25-04-2003 à 13:43:49  profilanswer
 

dans le 1er code, tu as 2 substitutions
dans le second, juste 1
 
tu vois où je veux en venir ?  ;)

n°371785
vfqs
Posté le 25-04-2003 à 13:50:24  profilanswer
 

Aricoh a écrit :

dans le 1er code, tu as 2 substitutions
dans le second, juste 1
 
tu vois où je veux en venir ?  ;)  

C ce que je me dis aussi. Mais en termes de temps de traitement ? Chuss pas sur que le le 1er cas soit le plus rapide, car il balaye la ligne entière.

n°371810
pospos
Posté le 25-04-2003 à 14:06:05  profilanswer
 

dans les deux cas c'est extremement rapide, à moins que ta ligne fasse 30mo!
 
Dans tous les cas c'est difficile de savoir à l'avance: il faut voir la gueule de ta ligne.
 
L'efficacité d'une regexp est jamais certaines: parfois il vaut mieux faire /tralala|tralali/ et parfois /tralala/ | /tralali/ par exemple, et ca depend des cas. Ya aussi l'instruction study qui permet parfois de gagner un peu de temps...
Dans tous les cas pour du traitement comme ca tu va perdre plus de temps à te prendre la tete à optimiser que celui que tu gagnera au final.
 
Si vraiment tu veux avoir une reponse utilise le module benchmark pour faire le test avec tes données et ton matos (disque dur rapide et processeur lent, ou l'inverse, ne donneront pas forcement les meme resultats par exemple)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Optimisation

 

Sujets relatifs
PERL probleme d'envois de mailBesoin d'aide pr optimisation (ACCESS)
Pour les pros de l'optimisation :)[perl] limiter le nombre de chiffre d'un float ?
perl - protéger un programme contre les plantages ?[ Perl] cmd sort
PB de path en perl[PERL] Couleurs à l'affichage
[php ou perl] petite bd dans 1 fichierchemin vers perl automatique pour fichier exécutable
Plus de sujets relatifs à : [Perl] Optimisation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR