java - 是否可以将 'see' 对象图用于垃圾回收?

标签 java memory-management memory-leaks garbage-collection

我有一个正在泄漏内存的 Java 应用程序。我知道哪些对象在垃圾收集期间没有被释放,但我无法弄清楚是什么引用了它们。

是否有可能对 JVM 内部保存的对象图具有某种可见性?

是否有可能找出哪些对象正在引用另一个对象?

最佳答案

在非常基础的层面上,您可以使用命令 jhat 和 jmap 从正在运行的 Java 进程读取堆文件,然后对其进行处理 - 它会在本地端口上启动一个小型 Web 服务器。它不太容易阅读,但您不必购买分析器即可使用它。

关于java - 是否可以将 'see' 对象图用于垃圾回收?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13138872/

相关文章:

objective-c - 使用 NSKeyedArchiver 编码大型对象图会占用内存

c++ - System::String to char* 函数..内存泄漏?

java.util.PriorityQueue 的元素不会在 poll() 上向上移动

java - char c = 一些整数文字可能会编译,但 float f = 一些浮点文字永远不会编译。为什么?

c - 使用 max_align_t 存储一大块字节

c - 进程虚拟内存中的起始地址和结束地址

ios - 内存泄漏 - UIImagePNGRepresentation

c# - Socket 的扩展方法内存泄漏 'ReceiveAsync' !

java - 如何使用 Log4j 或类似工具在日志记录中包含静态信息?

java - Java swing 应用程序中可以有多少个垂直字段详细信息?