Optimisation...s #2

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Optimisation...s #2

Message par Progi1984 »

Toujours pour Moebius,

Voilà, j'ai une chaine qui va contient le code d'une fonction ASM.

En fait au fur et à mesure de la lecture du code ASM (ligne par ligne), je remplis cette chaine (Chaine = Ligne + #System_EOL). Sauf que cela prend plus de 10 minutes pour un code ASM de 180 000 lignes de code.

Auriez vous une idée pour optimiser cela ?
Devrais-je passer par une zone mémoire ? Et faire un poke à chq fois ? Cela serait il vraiment plus rapide ?
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

As tu essayé avec une linked list, chaque élément de la liste étant une ligne de code ?

Sinon, une zone mémoire devrait être rapide, à condition de réserver une taille assez grande dès le départ pour ne pas faire de ReAllocateMemory() à chaque nouvelle ligne de code.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

gnozal a écrit :As tu essayé avec une linked list, chaque élément de la liste étant une ligne de code ?

Sinon, une zone mémoire devrait être rapide, à condition de réserver une taille assez grande dès le départ pour ne pas faire de ReAllocateMemory() à chaque nouvelle ligne de code.
J'avais pas pensé à la liste chainée pour contenir le code. Bien joué, et d'aprés ce que j'ai pu voir sur mes premiers tests, c'est de la balle, lecture et ajout ultra rapide. On sent que Fred a bien retravaillé les listes chainées...
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Je ne sais pas si ce code peut t'aider mais si ton code ASM est dans un fichier tu peux utiliser cette petite routine.

Code : Tout sélectionner

Fichier.s ="Nom du Fichier . extension"
OpenFile(1,Fichier)
Lg=Lof(1)
*Mem=AllocateMemory(Lg)
ReadData(1,*Mem,Lg)
CloseFile(1)
String.s = PeekS(*Mem,Lg)
Debug String

Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Merci à vous deux, ca fonctionne ! Nickel, j'ai encore gagné deux minutes.
Répondre