java - JBoss不释放内存

标签 java memory-management jboss visualvm

我正在 JBoss 中运行 Java 应用程序,该应用程序定期执行内存密集型任务。 org.jboss.Main 使用的内存量在此期间会增加,但任务完成后不会下降。 我一直在使用 VisualVM 分析该进程并强制进行垃圾收集。 org.jboss.Main 使用的内存仍保持在 1GB 左右。堆转储的基本信息如下。

Total bytes: 53,795,695
Total classes: 5,696
Total instances: 732,292
Classloaders: 324
GC roots: 2,540
Number of objects pending for finalization: 0

我还查看了使用内存的类,发现 char[] 占据了大部分内存。

谁能告诉我为什么 VisualVM 显示 JBoss 使用的内存比我的 Activity 监视器少 20 倍?如果有人可以提供任何建议或指示来进一步阅读如何让 JBoss 在作业完成后释放内存,我们将不胜感激。

最佳答案

VisualVM 显示 Full GC 后堆的大小。这是堆增长之前可以使用的数据量。

堆转储显示当前使用了多少堆。

关于java - JBoss不释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19026775/

相关文章:

java - 在 Java 中为图像添加边框

c - 删除数组中的元素并向左移动元素以缩小间隙

iphone - 避免自动释放对象,好的做法还是矫枉过正?

java - JBoss 上未生成线程转储

java - 当另一个 JFrame 可见时,模式对话框并不总是位于未修饰的 JFrame 之上

java - 检查值方法不适用于检查幻方

perl - Perl 中的内存管理

java - 新的缺失/不满足的依赖项 : service jboss. module.spec.service

java - EJB 中的 @Inject 注释不适用于 Logger

java - 这个日期和时间片段是如何工作的?