visualVM内存泄漏

时间:2009-11-13 02:35:45

标签: java

使用visualVM检测内存泄漏时,它允许我们进行如下所述的实例视图:

“实例”视图显示所选类的对象实例。从“实例”窗格中选择实例时,VisualVM将在相应窗格中显示该类的字段以及对该类的引用。在“引用”窗格中,可以右键单击某个项目,然后选择“显示最近的GC根”以显示最近的垃圾收集根对象。

任何人都可以告诉我最接近的垃圾收集根对象是什么以及如何利用这些信息来帮助识别泄漏点。谢谢!

2 个答案:

答案 0 :(得分:2)

您可能会发现this Sun book/chapter on Garbage Collection很有用,特别是this section将GC根列为:

  
      
  • 堆栈(任何线程)上的临时变量
  •   
  • 静态变量(来自任何类)
  •   
  • JNI原生代码的特殊引用
  •   

换句话说,GC根是变量,可以通过持有对它的引用来保持另一个对象不被GC。

答案 1 :(得分:1)

GC根是静态或局部变量中的引用。根中保存的引用可防止引用的对象被垃圾回收。

在VisualVM中,您可以使用“显示最近的GC根”功能来帮助您跟踪对您认为应该进行垃圾回收的对象的引用。