E
ErdyMurphy
Gast
Hi,
ich versuche den kompletten heapspace zu verwenden was aber nicht funktionier.
Habe folgenden Code:
Ich berechne mir also den zur verfügungstehenden Speicher und versuche dann
ein Buffered Image zu erzeugen was diesen platz beansprucht...
das funktioniert auch soweit... nur darf ich nicht den kompletten Speicher
den ich von maxmemory angezeigt bekomme verwenden... deswegen ziehe ich mit - (307*1024*1024);
307 MB testweise ab (ich mache alos so als wäre weniger speicher zur verfügung für das bild) und es klappt.
Sobald ich 306 mb abziehe geht es nicht mehr.
Folgende ausgabe erzeigt das Programm:
freememory:15
maxmemory:989
totalmemory:15
size:13375.134242316972
freememory:4
maxmemory:989
totalmemory:687
dies bedeutet dass ich nur 687 MB von den 989MB nutzen kann ansonsten kommt
eine OutOfMemory Exception
Vielleicht einer ne Idee?
ich versuche den kompletten heapspace zu verwenden was aber nicht funktionier.
Habe folgenden Code:
Java:
System.out.println("freememory:"+Runtime.getRuntime().freeMemory()/1024/1024);
System.out.println("maxmemory:"+Runtime.getRuntime().maxMemory()/1024/1024);
System.out.println("totalmemory:"+Runtime.getRuntime().totalMemory()/1024/1024);
long availableMem = Runtime.getRuntime().maxMemory() - Runtime.getRuntime().totalMemory() + Runtime.getRuntime().freeMemory()-(307*1024*1024);
double size = Math.sqrt(availableMem/4);
System.out.println("size:"+size);
BufferedImage img = new BufferedImage((int)size,(int)size, BufferedImage.TYPE_INT_RGB);
System.out.println("freememory:"+Runtime.getRuntime().freeMemory()/1024/1024);
System.out.println("maxmemory:"+Runtime.getRuntime().maxMemory()/1024/1024);
System.out.println("totalmemory:"+Runtime.getRuntime().totalMemory()/1024/1024);
Ich berechne mir also den zur verfügungstehenden Speicher und versuche dann
ein Buffered Image zu erzeugen was diesen platz beansprucht...
das funktioniert auch soweit... nur darf ich nicht den kompletten Speicher
den ich von maxmemory angezeigt bekomme verwenden... deswegen ziehe ich mit - (307*1024*1024);
307 MB testweise ab (ich mache alos so als wäre weniger speicher zur verfügung für das bild) und es klappt.
Sobald ich 306 mb abziehe geht es nicht mehr.
Folgende ausgabe erzeigt das Programm:
freememory:15
maxmemory:989
totalmemory:15
size:13375.134242316972
freememory:4
maxmemory:989
totalmemory:687
dies bedeutet dass ich nur 687 MB von den 989MB nutzen kann ansonsten kommt
eine OutOfMemory Exception
Vielleicht einer ne Idee?