【发布时间】:2014-04-04 19:18:20
【问题描述】:
在任何情况下,Java 应用程序(例如 Tomcat servlet 应用程序)中的泄漏是否有可能超过分配的内存并使用额外的系统内存,或者为 JVM 分配的堆是否真正被防火墙(可以这么说)来自(其余的)操作系统/内核内存?我正在使用 Java 6 和 7 在 2.6 Kernel Linux 中工作,但这是一个更普遍的问题。
【问题讨论】:
-
是的。 JVM 可以通过多种方式消耗内存,而不是通过 Java 堆。例如,默认情况下,每个线程的堆栈占用 2Mb。如果您描述您遇到的问题,也许有人会帮助您解决这些问题。
-
这确实是一个普遍的问题。我正在与一些 Java 开发人员进行电话会议,我建议内存泄漏可能会占用堆以外的系统内存,该项目的高级开发人员告诉我这是不可能的。我不同意这是不可能的,但我不知道具体情况,我相信我在过去看到过这种情况。
标签: java memory memory-leaks jvm