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

Agents de placement/Fenêtres Java Discussion :

[JDialog] La mémoire ne se libère pas au dispose()


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Par défaut [JDialog] La mémoire ne se libère pas au dispose()
    Bonjour à tous !

    Me voici devant un problème de mémoire libérée sur un JDialog.dispose().

    J'ai bien mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE)
    mais rien n'y fait, la mémoire utilisée par ce JDialog n'est pas libérée. J'ai tout essayé mais impossible d'arranger le problème.

    Merci d'avance à tous !

    Jérôme

  2. #2
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Comment vérifie-tu que la mémoire est libérée ou non ? As-tu attendu un nouveau cycle du GC ? As-tu utilisé jconsole si tu as Tiger ?

  3. #3
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Est-ce que ta JDialog n'est plus référencée dans ton application ? Peut-être qu'un simple :suffirait ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Par défaut
    MessagePosté le: Jeu Sep 01, 2005 20:59 Sujet du message:
    Est-ce que ta JDialog n'est plus référencée dans ton application ? Peut-être qu'un simple
    Malheureusement non :'(

    Comment vérifie-tu que la mémoire est libérée ou non ?
    Gestionnaire des tâches windows / Processus, la mêmoire utilisée y est affichée.

    As-tu attendu un nouveau cycle du GC ?
    A quelle fréquence ce cycle se déclenche t'il ?

    As-tu utilisé jconsole si tu as Tiger ?
    Ah non, comment utiliser JConsole ?

  5. #5
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par bugalood
    Gestionnaire des tâches windows / Processus, la mêmoire utilisée y est affichée.
    Je parle pour Unix, j'extrapole à Windows : un processus en cours d'exécution ne rend pas la mémoire demandée au système d'exploitation.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 34
    Par défaut
    Je parle pour Unix, j'extrapole à Windows : un processus en cours d'exécution ne rend pas la mémoire demandée au système d'exploitation.
    Ah ??? :'( ! Mais que se passe t'il lorsque la mémoire de l'ordinateur est remplie... ?

    Connaissez vous alors une autre solution pour voir la taille du heap ?

  7. #7
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    La mémoire de l'ordinateur est constituée de mémoire vive en RAM, et de mémoire virtuelle sur disque, avant de la remplir il faut déjà y aller évidemment quand il n'y a plus de place, ben y a plus de place comme dirait Lapalisse...
    Regarde les méthodes XXXMemory de la classe Runtime pour avoir ce genre d'informations.

  8. #8
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par bugalood
    Gestionnaire des tâches windows / Processus, la mêmoire utilisée y est affichée.
    La quantité de mémoire utilisée affichée n'est pas représentative de la mémoire alouée aux différents objets instanciés.
    Tu peux très bien avoir liberé la mémoire allouée à ta JDialog, mais le système utilise cette "quantité liberée" pour simplement faire des calculs peut-être même (et sans doute) pour des tâches qui n'ont rien à voir avec ton application Java.

  9. #9
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par Regis.C
    La quantité de mémoire utilisée affichée n'est pas représentative de la mémoire alouée aux différents objets instanciés.
    Tu peux très bien avoir liberé la mémoire allouée à ta JDialog, mais le système utilise cette "quantité liberée" pour simplement faire des calculs peut-être même (et sans doute) pour des tâches qui n'ont rien à voir avec ton application Java.
    La mémoire libérée réintègre la zone de heap (le "tas") de la JVM, mais en aucun cas n'est rendue au système.

  10. #10
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    Citation Envoyé par herve91
    Citation Envoyé par Regis.C
    La quantité de mémoire utilisée affichée n'est pas représentative de la mémoire alouée aux différents objets instanciés.
    Tu peux très bien avoir liberé la mémoire allouée à ta JDialog, mais le système utilise cette "quantité liberée" pour simplement faire des calculs peut-être même (et sans doute) pour des tâches qui n'ont rien à voir avec ton application Java.
    La mémoire libérée réintègre la zone de heap (le "tas") de la JVM, mais en aucun cas n'est rendue au système.
    Au temps pour moi !
    Je serai moins con en me couchant ce soir, et qu'est-ce que j'aime ça!
    merci Hervé!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/08/2014, 17h57
  2. Garbage Collector ne libère pas de mémoire
    Par Nico2050 dans le forum Général Java
    Réponses: 4
    Dernier message: 15/11/2012, 00h21
  3. mqsvc.exe ne libère pas sa mémoire
    Par Kagozuma dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 12/08/2011, 12h39
  4. Qt ne libère pas correctement la mémoire ?
    Par atmakefka dans le forum Qt
    Réponses: 13
    Dernier message: 04/07/2010, 09h22
  5. Réponses: 18
    Dernier message: 08/04/2009, 10h19

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