Java内存泄漏是否可能使用比堆+ permgen更多的内存?

时间:2014-04-04 19:18:20

标签: java memory memory-leaks jvm

在任何情况下,Java应用程序(例如Tomcat servlet应用程序)中的泄漏是否有可能超出分配的内存并使用额外的系统内存,或者JVM的已分配堆是否真正具有防火墙(可以这么说)从(其余的)OS /内核内存?我在使用Java 6和7的2.6内核Linux工作,但这更像是一个普遍的问题。

2 个答案:

答案 0 :(得分:2)

是的 - 这是可能的。 Java内存区域分为几个区域 - heap和permgen不是全部。还有代码缓存和本机内存的区域,这对于所有堆结构都非常流行。请查看this presentation

的幻灯片7

答案 1 :(得分:1)

当然,这是可能的。简单示例包括ByteBuffer.allocateDirect()FileChannel.map()。这些缓冲区的内容不在Java堆中。