PDA

View Full Version : [java]Problema con la memoria


mastoo
03-04-2007, 20:34
Sto scrivendo un programma di ray tracing completamente in java:D
il problema è che nel "renderizzare" a risoluzioni superiori a 800 *600 la java vm mi dice "out of memory", pero io non conosco quanta memoria occorre al programma...
Ora chiedo c'e un modo per aumentare la memoria della jvm dal programma stesso quando va in out of memory o ci sono altri sistemi per risolvere il problema?

grazie per le risposte

^TiGeRShArK^
03-04-2007, 20:52
Sto scrivendo un programma di ray tracing completamente in java:D
il problema è che nel "renderizzare" a risoluzioni superiori a 800 *600 la java vm mi dice "out of memory", pero io non conosco quanta memoria occorre al programma...
Ora chiedo c'e un modo per aumentare la memoria della jvm dal programma stesso quando va in out of memory o ci sono altri sistemi per risolvere il problema?

grazie per le risposte
non puoi settare in maniera opportuna l'heap space all'avvio con l'opzione -Xmx800m ad esempio (800m è il quantitativo di memoria da riservare all'heap)?

71104
03-04-2007, 21:00
OT: dove si possono trovare informazioni circa gli algoritmi usati nel raytracing? è un argomento che mi incuriosisce e che non ho mai approfondito.

mastoo
04-04-2007, 08:50
Volevo chiedere
1)"800m" significa 800 megabyte?
2)come faccio a sapere quanta memoria occupa il programma per fare una stima delle risorse?
3)quanto è grande la memoria heap predefinita?(spero poco)

per quanto riguarda gli algoritmi, io ho iniziato da qui http://www.banterle.com/francesco/ray_mc/ray_mc.html
e da qui http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtrace0.htm
poi basta conoscere un po di geometria e calcolo vettoriale
al momento credo che il miglior algoritmo sia il photon mapping
cercalo su google

andbin
04-04-2007, 09:03
1)"800m" significa 800 megabyte?Sì, al numero puoi aggiungere k/K o m/M, con chiaro significato di kilo o mega.

2)come faccio a sapere quanta memoria occupa il programma per fare una stima delle risorse?Con Java 6 c'è un tool apposito di monitoring chiamato 'jconsole'

3)quanto è grande la memoria heap predefinita?(spero poco)Il heap di default è di 64 MB.

^TiGeRShArK^
04-04-2007, 14:24
Sì, al numero puoi aggiungere k/K o m/M, con chiaro significato di kilo o mega.

Con Java 6 c'è un tool apposito di monitoring chiamato 'jconsole'

Il heap di default è di 64 MB.

c'è anche con Java 5 ;)
solo che con Java 5 è necessario far partire il programma che si vuole monitorare con un'opzione necessaria per fargli caricare l'agente atto a gestire il monitoraggio della memoria:
-Dcom.sun.management.jmxremote

andbin
04-04-2007, 14:41
c'è anche con Java 5 ;)Giusto ... era definito "Experimental" ma c'era. ;)