JacorB通知服务的JVM(java 1.6)使用超出-Xmx值的内存,设置为240MB。
Windows任务管理器中的java exe跨越900MB Privatebytes,但My YourKit(评估版)显示内存消耗为28 MB。任何人都有想法,为什么java exe交叉-Xmx值
谢谢, Sharat Bhat
答案 0 :(得分:3)
-Xmx
确定允许您的进程使用的 Java堆的最大大小。
"Private Bytes"可以(并且确实)包含JVM进程使用但不属于Java堆的内存。
因此,您不应期望“私有字节”测量的进程内存使用量低于-Xmx
设置。
最后,我希望YourKit对堆使用情况的评估非常准确。
答案 1 :(得分:1)
你也设置了-Xss吗?否则堆栈不受限制。
答案 2 :(得分:0)
-Xmx设置最大堆空间。但Java为其他空间分配内存:permgen空间,包含类定义,每个线程的堆栈,在本机代码中分配的内存等。