在任何情况下,Java应用程序(例如Tomcat servlet应用程序)中的泄漏是否可能超出分配的内存并使用额外的系统内存,或者为JVM分配的堆是否真的从( OS/Kernel内存的其余部分)设置了防火墙(可以这么说)?我使用的是带有Java 6和7的2.6内核Linux,但这更像是一个一般性问题。
发布于 2014-04-05 03:26:31
是的,这是可能的。Java内存区被划分为几个区域- heap和permgen并不是全部。还有一些区域用于代码缓存和本机内存,这在所有堆结构中都非常流行。请查看this presentation的幻灯片7
发布于 2014-04-06 20:36:40
当然,这是可能的。简单的例子是ByteBuffer.allocateDirect()和FileChannel.map()。此类缓冲区的内容不在Java Heap中。
https://stackoverflow.com/questions/22871321
复制相似问题