Libération de la mémoire

cs_Kloun Messages postés 23 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 23 octobre 2003 - 22 oct. 2003 à 16:01
malger Messages postés 4 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 octobre 2003 - 27 oct. 2003 à 16:42
Bonjour,

Dans mon appli, j'ouvre des JInternalFrame dans lesquelles je charge un explorateur XForms (XSmiles pour ne pas le nommer). Ca me bouffe pas mal de mémoire (plus de 20000ko).
Le problème, c'est que cette mémoire n'est pas libérée lors de la fermeture de la JInternalFrame.
Comment faire pour récupérer cette mémoire ?
Merci.

5 réponses

benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
23 oct. 2003 à 10:05
bonjour,

tu peux essayer ceci :

monObjetIntFrame = null;
System.gc();

en declarant ton objet comme null le grabage collector( ramasse miettes) saura qu il peut liberer la memoir alloué a cet objet

benohite
:big)
0
cs_Kloun Messages postés 23 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 23 octobre 2003
23 oct. 2003 à 15:19
Bonjour,

Ca change rien.
Ce qui est étonnant, c'est que si je réduis l'appli, ça libère la mémoire, que la JInternalFrame soit ouverte ou non.
Une idée ?
0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
24 oct. 2003 à 15:04
non pas trop d idées, le garbage collector se debrouille tout seul, tou ce que je peux te dire c qu en mettant une reference null sur un objet tu facilites la liberation memoire par le gc

benohite
:big)
0
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
24 oct. 2003 à 15:08
j ai fais une appli mdi (utilisant les jinternalframe et ca ne me mange pas autant de memoire
cette grosse consommation vient peut etre des classe (xsmiles) que tu utilises

benohite
:big)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malger Messages postés 4 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 29 octobre 2003
27 oct. 2003 à 16:42
J'ai remarqué qu'en appelant directement :
Runtime.getRuntime().gc();, la libération de la mémoire se faisait mieux qu'un System.gc(); qui en soit est la même chose puisque System.gc(); fait appel à Runtime.getRuntime().gc();.

Voilà.

8-) Miguel ALGER
0
Rejoignez-nous