2

可能重复:
为什么 xmlx 和 top 之间存在内存使用差异?

我运行一个java程序使用

java    -Xms32m -Xmx64m  xxxclassname

但是从 top 命令,我知道有一个近 200MB 的内存。为什么它不小于 Xmx 选项中指定的 64MB?

4

2 回答 2

4

-Xmx64m  

flag 只控制堆大小。Java 需要比这更多的内存才能正常运行。

于 2012-09-19T06:25:09.033 回答
4

您正在指定垃圾收集堆的最大大小。Java 内存消耗还有其他方面,包括本机代码(不仅是 JVM,还包括任何加载了 JNI 的本机库)和PermGen空间。(PermGen 空间可以稍微调整一下,但你真的不想把它限制太多,否则你的程序会崩溃。)

于 2012-09-19T06:27:03.060 回答