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

Langage Java Discussion :

out of memory incompréhensible.


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 95
    Par défaut out of memory incompréhensible.
    Bonjour voici une portion de code qui s'exécute dans un thread.
    Damier est une classe que j'ai créée et la méthode "evolue()" crée et renvoie un Damier. L'objet PanDam a pour membre un Damier et getPanDam() renvoie le damier de l'objet panDam, tandis que setPanDam(d) affecte au membre Damier de PanDam le damier d.
    Au bout d'un moment java me dit OutOfMemoryError. Pourtant à chaque tour de boucle un Damier est créé et le damier précédent n'est plus référencé. Il devrait donc aller au ramasse-miette. Pourquoi alors ai-je un "OutOfMemory" ?
    Merci beaucoup.

    Voici le code de la méthode run() executée par mon thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void run() {
    Graphics g = fenprinc.getPanDam().getGraphics();
    Damier courant, suivant;
     
    while(true){
        courant = fenprinc.getPanDam().getDam();
        suivant = courant.evolue();
        fenprinc.getPanDam().SetDamier(suivant);
        fenprinc.getPanDam().paint(g);
        }    
    }

  2. #2
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    Il faut faire attention à bien tout déréférencer. Par exemple, si à chaque damier créé, il y a une image et son contexte graphique de créés, avant d'en créer un autre, il faut déréférencer et l'image et le contexte graphique du damier dont tu ne te sers plus.

    Cordialement.

    Pierre

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 95
    Par défaut Merci
    Merci, ça a marché. J'étais persuadé que quand on déréférençais un objet alors tous ses membres l'étaient aussi.

  4. #4
    Membre émérite
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 122
    Par défaut
    C'est ce que moi aussi j'avais cru ... jusqu'à ce que je m'aperçoive et qu'on me montre que j'avais tord.

    Cordialement.

    Pierre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. "Out of Memory" incompréhension
    Par timlartiste dans le forum Android
    Réponses: 9
    Dernier message: 16/08/2012, 16h34
  2. [C++] [gcc] out of memory
    Par fxp17 dans le forum GCC
    Réponses: 5
    Dernier message: 06/01/2006, 10h29
  3. [pb mémoire] out of memory d'eclipse
    Par Casp dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 12/05/2005, 16h39
  4. Out of memory
    Par shurato dans le forum ANT
    Réponses: 1
    Dernier message: 10/11/2004, 16h19
  5. [JBuilder 8] Out of memory problem ...
    Par keros dans le forum JBuilder
    Réponses: 2
    Dernier message: 08/09/2003, 19h03

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