
我的系統報告 8Gb,但是當我嘗試為 java 程式保留 6.5Gb 堆空間,甚至 4Gb 時,它失敗了。是因為我安裝的是32位元版本嗎?
無法分配堆 java -Xmx3072m -jar {...}
啟動正常,但應用程式記憶體不足。 java -Xmx2048m -jar {...}
答案1
不管你相信與否,這是一個常被問到的問題。所以你的答案是這裡:
「32 位元JVM 的最大理論堆限制為4G。由於各種附加限制,例如可用交換、核心位址空間使用、記憶體碎片和VM 開銷,實際上該限制可能要低得多。在大多數現代32 位元JVM上,此限制可能要低得多。 ,最大堆大小可以為2G。
從 Java SE 6 開始,不支援 Windows /3GB boot.ini 功能。
如果您的應用程式需要非常大的堆,您應該在支援 64 位元應用程式的作業系統版本上使用 64 位元 VM。有關詳細信息,請參閱 Java SE 支援的系統配置。 」