java - 了解哪些对象被垃圾收集

标签 java garbage-collection

当我查看 java 应用程序的内存消耗时,我遇到了一个奇怪的行为:

应用程序在大约 10 分钟内分配 500 MB,然后垃圾收集器释放这 500 MB。然后,500 MB 被一次又一次地分配和释放。

应用程序上没有用户 - 应用程序处于待机状态。

您能否提示我如何检测应用程序分配 500 MB 的原因?

谢谢

最佳答案

您可以使用JVisualVM从您的 JDK 来分析内存使用情况。

您应该打开应用程序并进行内存转储,您将看到不同类分配了多少内存。它可以为您指明正确的方向。

关于java - 了解哪些对象被垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30755772/

相关文章:

c# - 延迟对象的收集

java - 静态最终对象是否会被垃圾收集器删除?

c# - 如何在调用进程退出或被杀死时优雅地结束线程?

java - jdbcTemplate batchUpdate 抛出 java.lang.ClassCastException : java. util.ArrayList 无法转换

java - 安卓:m​​kdir() 失败:ENOENT(没有那个文件或目录)

java - 使用 Angular js、Spring、hibernate 一次保存大量行

java - 同时按下按键时未接收到按键事件

java - PS MarkSweep 是哪个垃圾收集器

使用 Openshift 的 Java 套接字

java - jdk8内存调优并发标记-清除GC暂停问题