Warum bin ich in der Lage,- Xmx auf einen Wert größer als physischen und virtuellen Speicher auf der Maschine auf Windows-und Solaris?

Auf einem 64-bit-Windows-Maschine mit 12 GB RAM und 33GB Virtuellen Speicher (per Task-Manager), bin ich in der Lage zum ausführen von Java (1.6.0_03-b05) mit einem unmöglich -Xmx Einstellung von 3,5 TB, aber es funktioniert nicht mit 35TB. Was ist die Logik hinter, wenn es funktioniert und wenn es scheitert? Der Fehler bei 35TB scheint zu implizieren, dass es versucht, um Plätze zu reservieren beim Start. Warum würde es tun, für -Xmx (im Gegensatz zu -Xms)?

C:\temp>java -Xmx3500g ostest 
os.arch=amd64 
13781729280 Bytes RAM 

C:\temp>java -Xmx35000g ostest 
Fehler während der Initialisierung aufgetreten ist der VM 
Could not reserve enough space for object heap 
Could not create the Java virtual machine. 

Unter Solaris (4GB RAM, Java 1.5.0_16), habe ich ziemlich viel aufgegeben auf 1 PB auf, wie hoch ich das einstellen kann -Xmx. Ich verstehe nicht die Logik, wenn es wird ein Fehler ausgegeben, der auf die -Xmx Einstellung.

devsun1.mgo:/export/home/mgo - > java -d64 -Xmx1000000g ostest 
os.arch=sparcv9 
4294967296 Bytes RAM 
InformationsquelleAutor ariscris | 2009-12-22
Schreibe einen Kommentar