Salut à tous,
comment supprimer des objets en étant sûr qu'ils aient été correctement supprimés (qu'ils ne prennent plus de place en mémoire et au passage que ça ne me lance plus de java.lang.OutOfMemory !!!) ?
merci d'avance
Salut à tous,
comment supprimer des objets en étant sûr qu'ils aient été correctement supprimés (qu'ils ne prennent plus de place en mémoire et au passage que ça ne me lance plus de java.lang.OutOfMemory !!!) ?
merci d'avance
On ne peut pas être sûr en Java qu'un objet va être libéré dès qu'on le veut, mais si tu mets sa valeur (référence) à "null" et que tu appelles <<System.gc()>> ça risque de te convenir.
NB_ sinon les méthodes "close" et "flush" sur certains objets sont là pour libérer effectivement des ressources
merci,
j'avais déjà explicitement passé mes objets à null et appelé System.gc() mais ça ne marche pas !
Les objets à supprimer sont des BufferedImage or il existe une méthode flush() pour cette classe mais ça ne fonctionne pas mieux !
Si tu travail avec des images il serait peut-être intéressant que tu utilise les SoftReference & co.
Je ne répondrai à aucune question technique par MP.
Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
Enfin, quand une solution a été trouvée à votre problème pensez au tag :resolu:
Cours Dvp : http://ydisanto.developpez.com
Blog : http://yann-disanto.blogspot.com/
Page perso : http://yann-disanto.fr
Pour qu'un objet ne soit plus en mémoire, il faut qu'il ne soit plus accessible depuis un autre objet. Il ne suffit donc pas de passer une de ses références à null : il peut y avoir d'autres références.
Il faut que tu cherches dans ton appli quels sont les objets qui peuvent accèder à ton BufferedImage et les rendre, eux aussi, innacessibles.
Partager