Page 1 sur 1

[..] FileRead fait gonfler la mémoire

Posté : lun. 27 mai 2013 14:04
par nak
Bonjour à tous,

J'utilise actuellement un code avec lequel j'ouvre plusieurs fichiers txt toutes les 5 minutes.

Code : Tout sélectionner

$Entree1 = FileRead(@ScriptDir & "\Fichier.txt")
Le problème c'est qu'à chaque lecture de ces différents fichiers txt, la mémoire utilisée par le script augmente de 100ko.

Existe t'il une fonction qui viderait cette mémoire ?

Merci

A+

Re: [..] FileRead fait gonfler la mémoire

Posté : lun. 27 mai 2013 15:40
par jguinch
Salut.
Tu devrais trouver ton bonheur ici.
J'ai testé, c'est impressionnant !

Re: [..] FileRead fait gonfler la mémoire

Posté : lun. 27 mai 2013 16:56
par nak
Salut Jguinchard,

Je viens de tester la ligne suivante directement dans mon script.

Code : Tout sélectionner

DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
Je suis à 2,5 Mo de mémoire occupée alors que sans j'étais à 12 Mo.
Par contre je trouve qu'il y a beaucoup de variation.

J'aimerais avoir la confirmation que cette ligne n'affecte pas les autres programmes mais uniquement mon script ?

Merci

a+

Re: [..] FileRead fait gonfler la mémoire

Posté : lun. 27 mai 2013 18:57
par mikell
Pour être sûr, faut utiliser _ReduceMemory(@AutoItPID) ou alors la même fonction dans WinAPIEx.au3 _WinAPI_EmptyWorkingSet(0)

Re: [..] FileRead fait gonfler la mémoire

Posté : mer. 29 mai 2013 22:30
par alabases
Si le script n'est pas tres lourd, une astuce serait de dupliquer le script en leur donnant 2 noms differents.

Dans la derniere ligne du "script1" on lance le "script2" suivi d'un "Exit"--- ce qui va exécuter le script2
Dans la derniere ligne du "script2" on lance le "script1" suivi d'un "Exit"---ce qui va relancer le script 1
>>>le programme tournera en boucle avec garantie de ne pas monopoliser la memoire.