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.
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager