Почему в состоянии я для установки-Xmx на значение, больше, чем физическая память и виртуальная память на машине и в Windows и в Солярисе?

На 64-разрядной машине Windows с 12 ГБ RAM и 33 ГБ Виртуальной памяти (на Диспетчер задач), я в состоянии выполнить Java (1.6.0_03-b05) с невозможной установкой-Xmx 3.5 ТБ, но это перестало работать с 35 ТБ. Какова логика позади, когда она работает и когда она перестала работать? Ошибка на уровне 35 ТБ, кажется, подразумевает, что пытается зарезервировать пространство при запуске. Почему это сделало бы это для-Xmx (в противоположность-Xms)?

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. 

На Солярисе (4 ГБ RAM, Java 1.5.0_16), я в значительной степени сдался на уровне 1 петабайта о том, как высоко я могу установить-Xmx. Я не понимаю логику для того, когда она будет ошибка на установке-Xmx.

devsun1.mgo:/export/home/mgo> java -d64 -Xmx1000000g ostest
os.arch=sparcv9
4294967296 Bytes RAM
10
задан ariscris 22 December 2009 в 23:38
поделиться