-
fuite de memoire
bonjour,
j'ai un souci de memoire
j'ai une frame dans laquelle je doit afficher un grand nombre d'elements
ces elements seront mis a jour regulierement donc j'ai crée un thread dans lequel une boucle initialise mes elements
a la fin de la boucle j'endors le thread pendant un certain temps puis je supprime tous les elements pour les reafficher avec leurs nouvelles valeurs grace a la methode removeAll()
la boucle est infinie et l'endormissement assez long
cependant a chaque reinitialisation des elements la memoire augmente de 1 Mo
existe t'il une autre methode mieux adaptée ? ou autre chose ?
-
Bonjour,
La notion de "fuite de mémoire" est inconnue en Java :) ou bien c'est un bug de la JVM !
Enfin quoiqu'il en soit, j'ai l'impression que ta méthode est assez barbare; ne pourrais-tu pas redessiner uniquement que les éléments qui ont changés, tout redessiner à chaque fois c'est un peu lourd non ?
Le problème des 1MO en plus à chaque fois est dû au fait que la JVM ne fait un garbage collect que lorsqu'elle estime qu'il est necessaire, car il est couteux en temps CPU; tant que tu as de la mémoire, ton programme Java l'utilisera :) Tu peux forcer un garbage collect, avec System.gc() il me semble, ça devrait enlever les objets inutilisés, mais ce n'est pas conseillé d'utiliser cette méthode car la jvm est sensée s'occuper de cette étape toute seule comme une grande.
A+
-
Met un bout de code, ça nous aidera à t'aider :)