Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / Problème mémoire ?

Problème mémoire ?

Remonter à Forum général Python
  • Problème mémoire ?

    Envoyé par JeromeB le 29 Juin 2010 à 08: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 :


    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 :


    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 ?

      Envoyé par jacko le 13 Juillet 2010 à 11: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.
Rendu par Ploneboard