outofmemory création d'objet
bonjour,
Je viens de modifier 2 petites choses dans un programme et voilà qui plante au bout de 3 jours.
Il y a un thread qui fait des opérations sur des bufferedImage.
J'avais :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public BufferedImage buffer1 = null;
public BufferedImage buffer2 = null;
public BufferedImage buffer3 = null;
public void run()
{
while(....)
{
buffer1 = capt.newBuffer();
buffer2 = capt.newBuffer();
buffer3 = capt.newBuffer();
}
} |
pas de problème
puis j'ai fait cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public BufferedImage buffer1 = null;
public BufferedImage buffer2 = null;
public BufferedImage buffer3 = null;
public void run()
{
while(....)
{
buffer1 = newBufferedImage(tab1,w,h);
buffer2 = newBufferedImage(tab2,w,h);
buffer3 = newBufferedImage(tab3,w,h);
}
public BufferedImage newBufferedImage(int[] tab,w,h)
{
BufferedImage bufIm = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
bufIm.setRGB(0,0,w,h,tab,0,w);
return bufIm;
}
} |
Est ce que ma fonction newBufferedImage peut provoquer un outofmemory ?
Est ce qu'il faut mettre buffer1 = null;buffer2 = null;buffer3 = null à chaque passage pour libérer la mémoire ? Perso, je pensais que dans mon cas ça écrasait.
Merci d'avance de votre aide