IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

problème de mémoire


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut problème de mémoire
    Bonjour,
    Je crée deux listes de liste de 50000x6 dans mon programme. Puis après je lis un fichier binaire d'une vingtaine de méga avec la fonction unpack de struct et à ce moment là j'ai un problème de mémoire.
    Est ce que je désalloue bien la mémoire lorsque je met liste=[] ou faut il utiliser une autre fonction (peut etre du genre del)?
    Est ce que unpack est déconseillé?

    J'espère que j'ai été à peu près clair.

    Bien cordialement,
    pouletator

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Par défaut
    essaie ca
    tu ne devrais plus avoir de ref a liste.

    ++

  3. #3
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Citation Envoyé par pouletator Voir le message
    Bonjour,
    Je crée deux listes de liste de 50000x6 dans mon programme. Puis après je lis un fichier binaire d'une vingtaine de méga avec la fonction unpack de struct et à ce moment là j'ai un problème de mémoire.
    Est ce que je désalloue bien la mémoire lorsque je met liste=[] ou faut il utiliser une autre fonction (peut etre du genre del)?
    Est ce que unpack est déconseillé?

    J'espère que j'ai été à peu près clair.

    Bien cordialement,
    pouletator
    Pourquoi tu crées deux listes? T'en sers-tu après? Est-ce que c'est nécessaire qu'elles soient allouées avant quand tu lises ton fichier?

    Plus d'informations aideraient à te diriger dans la bonne direction.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    liste=None
    Ok merci beaucoup, je vais tester ca.

    Pourquoi tu crées deux listes? T'en sers-tu après? Est-ce que c'est nécessaire qu'elles soient allouées avant quand tu lises ton fichier?
    J'ai besoin des deux listes dans le début du traitement. Elles n'ont pas les memes paramètres et c'est plus pratique de les distinguer. Il y en a une dont je me sers plus juste avant l'ouverture de mon fichier avec unpack. A celle là je met

    mais est ce suffisant pour désallouer toute la mémoire?

  5. #5
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Non, Python décide quand il n'a plus besoin d'une référence et la supprime à ce moment là. Encore une fois, je t'invite à donner plus de détails sur ton problème. Est-ce que des itérateurs à la place d'une liste feraient l'affaire?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    Et donc le seul moyen de le faire décider qu'il n'a plus besoin de la référence est de mettre , c'est bien ca?

    Non je ne peux pas utiliser un itérateur car les éléments de la liste sont utilisés plusieurs fois.

    Ce que je fais, c'est que je crée une liste puis je crée une deuxième liste à partir de la première.
    Une fois ces deux listes créées, la première ne m'interesse plus et ca serait bien si je pouvais la supprimer. Ensuite, j'ouvre mon fichier avec unpack et je lance une boucle qui va lire plusieurs fois la seconde liste.
    Une fois ce premier traitement réalisé, je vais à nouveau relancer le programme en recréant les listes (pas avec les memes données).

    Je viens de voir le module garbage collector. Ne serait ce pas la solution?

  7. #7
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Non. Quand tu fais

    Tu changes seulement la référence que liste désigne, mais ta liste est probablement encore en mémoire.

    Si j'étais toi, je réviserais mes listes, car j'ai jamais rencontré de programme en Python qui ne pouvait s'exécuter parce que je manquais de mémoire.

Discussions similaires

  1. [WORD]Problème de mémoire
    Par Dnx dans le forum VBA Word
    Réponses: 17
    Dernier message: 05/10/2005, 14h48
  2. [Tomcat][Spring] Problème utilisation mémoire
    Par Wutintin dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/09/2005, 14h57
  3. [Crystal Report]Problème de mémoire avec le moteur RDC
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/05/2005, 09h09
  4. Problème de mémoire avec BDE
    Par Machuet dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 10h11
  5. Problème de mémoire Affichage images
    Par Repti dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2004, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo