[R] améliorer la vitesse dexécution d'un script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
steiner62
Niveau 1
Niveau 1
Messages : 10
Enregistré le : mar. 21 sept. 2010 16:17
Status : Hors ligne

[R] améliorer la vitesse dexécution d'un script

#1

Message par steiner62 »

Bonjour à tous,

je suis face a un problème délicat j'ai la solution a mon problème initial mais le temps d'exécution de mon script est tellement long que je ne peut pas me permettre de le concidérer comme terminer.

Problèmatique :

Je doit faire un traitement de deux fichiers de taille différente (premier fichier de 355Ko et le second de 6 115Ko) mais de structure identique. Le traitement a effectuer est de lire le fichier, trouver toute les lignes contenant les valeur comprise entre 40100001 et 40199999 et comprise entre 41100001 et 41199999 pour y ajouter à la fin selon le fichier traité une lettre V pour le petit fichier ou M pour le plus gros.

Hors il s'avére que le traitement du plus petit fichier met beaucoup plus de 30 minutes. Le petit fichier contient quand même plus de 86.000 lignes et le plus gros plus de 3.000.000 de lignes. Et je ne peut absolument pas supprimer les retours à la ligne.


Les fichiers :

Voici la structure des fichiers :

Code : Tout sélectionner

#FLG 000
#VER 14
#DEV EUR
#MECG
03
031110
211210
1
100001

4110000
51125000
41136557

WEINBRECK BERNARD
2
4118,69
0,000000
0,00
0
1
166,91
A


0
0
0


0
0
0




0
0,00


#MECG

Mes scripts :

La version 1 du script :
► Afficher le texte
Ou tout est géré en même temps il lit le fichier d'origine et réécrit dans un fichier de destination.

La version 2 du script :
► Afficher le texte
Où la je travaille avec des array en espérent augmenter la vitesse mais ce n'ai pas mieux.

Comment puis je faire pour améliorer la vitesse d'exécution de ceci ? car si je met plus de 30 minutes pour le petit fichier je n'ose imaginer le temps pour le plus gros.

merci de votre aide.
Modifié en dernier par steiner62 le lun. 21 mars 2011 09:09, modifié 1 fois.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] améliorer la vitesse dexécution d'un script

#2

Message par matwachich »

Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
softwater
Niveau 3
Niveau 3
Messages : 44
Enregistré le : mer. 14 janv. 2009 17:12
Status : Hors ligne

Re: [..] améliorer la vitesse dexécution d'un script

#3

Message par softwater »

bonjour,

Je suis pas sûr d'avoir tout compris...
Voici ce que j'ai fait,
  • Lecture du fichier ligne par ligne
    ouverture d'un fichier de réception
    réécrit chaque ligne dans le nouveau fichier
    si la valeur est trouvée ajoute V
► Afficher le texte
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] améliorer la vitesse dexécution d'un script

#4

Message par matwachich »

Voila, c'est ça.
Dans le script du premier post vous n'utilisiez pas FileOpen, et si on regarde bien la doc de la fonction FileReadLine:

Code : Tout sélectionner

If a filename is given rather than a file handle - the file will be opened and closed during the function call - for parsing large text files this will be much slower than using filehandles.
 
Dans les gros fichiers, il faut toujours utiliser des handles.

Perso, j'utiliserai plutôt _FileReadToArray, car il est encore plus rapide de traiter un Array (car il est en mémoire) qu'un fichier même en handle!
► Afficher le texte
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] améliorer la vitesse dexécution d'un script

#5

Message par SagePourpre »

Aussi, en changeant la priorité du script
à haute (4) ou temps réel(5)...

Code : Tout sélectionner

ProcessSetPriority(@AutoItPID,5)
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
steiner62
Niveau 1
Niveau 1
Messages : 10
Enregistré le : mar. 21 sept. 2010 16:17
Status : Hors ligne

Re: [..] améliorer la vitesse dexécution d'un script

#6

Message par steiner62 »

J'ai honte en lisant vos réponses s'était tellement évident que je n'ai pas vu mon erreur de débutant.

Grand merci de votre aide
Répondre