Problème mémoire ?

Document Actions
Réponses: 1   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

Problème mémoire ?

Posté par JeromeB le 29/06/2010 09:56
Bonjour,

Je travaille sur un script python très simple qui se contente d'exécuter n fois la même application en ayant pris soin d'attendre la fin d'exécution de l'application précédente :

code:
   for i in range(ITER):
      process = sp.Popen(APP)
      print "\n\nAPP TEST_%s\n\n" % i
      process.wait()


Si je laisse le script tourner pendant 2 jours, je retrouve un PC très lent.
J'ai alors tenté la chose suivante :

code:
   for i in range(ITER):
      process = sp.Popen(APP)
      print "\n\nAPP TEST_%s\n\n" % i
      process.wait()
      del process


Le "del" semble améliorer les choses.
Ma question est : pourquoi ? Le compteur de référence ne gère-t-il pas déjà ça ?
Est-ce un hasard (le PC en question est quelques fois instable...) ?

Merci d'avance pour vos réponses.

PS:
La variable APP est une liste avec le chemin + nom de l'application (je n'arrive pas à afficher les crochets dans le message).

Re: Problème mémoire ?

Posté par jacko le 13/07/2010 12:35
Bonjour,
On manque d'info pour vous répondre. Qd votre PC est "très lent", il faudrait au minimum regarder avec le gestionnnaire de process quelle est la cause de ceci : utilisation mémoire, trop de process, process qui boucle, etc.
En tout cas, pour votre del, on peut dire ceci : l'instruction "del" n'a aucun effet ici, car à l'itération suivante, la variable "process" est réaffectée -> il s'opère un del implicite ; comme vous le dites, le compteur de référence (et le GC) fait son boulot : l'objet référencé par process se retrouve sans référence, et est détruit.

Python.org : Le site officiel du langage Python.
Zope.org : Le site web officiel de Zope.
Daily Python-URL : Actus de l'univers Python.
Tribute to Zyons : Zyons notre ami et membre fondateur de l'Afpy, nous quittait en 2005.