【发布时间】:2018-03-31 09:52:11
【问题描述】:
当我尝试启动 java 时,我设置标志 Xms 和 Xmx 来定义堆中的最小和最大内存
C:\ProgramData\Oracle\Java\javapath\java.exe -Xms200M -Xmx1536M
结果,Java 询问我没有足够的可用空间
Error occurred during initialization of VM
Could not reserve enough space for 1572864KB object heap
但是,如果我设置,例如 -Xmx756,它就可以正常工作!
那么,为什么 Java 不能预留内存呢?我有 16GB 的 RAM,但只有不到一半的内存在使用。 为什么Java尝试保留最大数量的内存,因为我设置了从200到1536的范围?
【问题讨论】:
-
我不明白,你宁愿 Java 在运行你的代码几个小时后告诉你没有足够的可用空间吗?
标签: java heap-memory