Trên máy Windows 64 bit có RAM 12GB và Bộ nhớ ảo 33 GB (mỗi Trình quản lý tác vụ), tôi có thể chạy Java (1.6.0_03-b05) với cài đặt không thể Xmx là 3.5TB nhưng không thành công với 35TB. Logic đằng sau khi nó hoạt động là gì và khi nào nó không thành công? Lỗi tại 35TB dường như ngụ ý rằng nó đang cố gắng để dự trữ không gian lúc khởi động. Tại sao nó sẽ làm điều đó cho -Xmx (như trái ngược với-Xms)?Tại sao tôi có thể đặt -Xmx thành một giá trị lớn hơn bộ nhớ vật lý và ảo trên máy trên cả Windows và 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.
Trên Solaris (RAM 4GB, Java 1.5.0_16), tôi đã bỏ khá nhiều ở mức 1 PB cho mức độ cao mà tôi có thể đặt -Xmx. Tôi không hiểu logic khi nó sẽ lỗi trên thiết lập -Xmx.
devsun1.mgo:/export/home/mgo> java -d64 -Xmx1000000g ostest os.arch=sparcv9 4294967296 Bytes RAM