Su una macchina Windows a 64 bit con 12 GB di RAM e 33 GB di memoria virtuale (per Task Manager), sono in grado di eseguire Java (1.6.0_03-b05) con un'impostazione impossibile -Xmx di 3,5 TB ma non riesce con 35 TB. Qual è la logica dietro quando funziona e quando fallisce? L'errore di 35TB sembra implicare che sta cercando di riservare spazio all'avvio. Perché dovrebbe farlo per -Xmx (al contrario di -Xms)?Perché sono in grado di impostare -Xmx su un valore maggiore della memoria fisica e virtuale sulla macchina su Windows e su Solaris?
C:\temp>java -Xmx3500g ostest os.arch=amd64 13781729280 Bytes RAM C:\temp>java -Xmx35000g ostest Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
Su Solaris (4GB di RAM, Java 1.5.0_16), ho praticamente dato fino a 1 PB su quanto in alto posso impostare -Xmx. Non capisco la logica per quando verrà eseguito l'errore sull'impostazione -Xmx.
devsun1.mgo:/export/home/mgo> java -d64 -Xmx1000000g ostest os.arch=sparcv9 4294967296 Bytes RAM