【发布时间】:2015-12-30 21:24:41
【问题描述】:
我正在通过 VisualVM 监控 Java 应用程序,我可以看到堆内存保持相对恒定,但是 Java 进程在内存中变得越来越大。
我知道 Java 内存由堆内存和 JVM+PermGen 内存组成,这涉及到各种各样的事情,但是我的 Java 应用程序是一个 GUI 应用程序,这种假设的内存泄漏只有在 GUI 组件处于特定配置时才会发生.
我已经进行了一些研究,显然在保持在堆大小范围内时可能会发生内存泄漏。我不明白我的情况怎么会是这样的情况。
知道 Swing 操作如何导致这种内存泄漏吗?
【问题讨论】:
-
您是否尝试查看导致此问题的堆的哪一部分?我想说尝试像 VisualVM(或)JConsole 这样的工具来找出问题区域,然后找到解决方案可能会更容易。 JConsole 将在您的 JDK-->bin 文件夹中提供
-
就像我说的,visualvm 没有显示内存泄漏。
-
使用 Jconsole 并检查不同的内存分配,如 permgen、旧代和新代等,
-
谢谢。不知道 JConsole。我在那里监视它。所有非堆内存也几乎是不变的。
-
不确定还有什么可能导致泄漏,抱歉!
标签: java swing user-interface memory memory-leaks