用jprofile打开hprof文件,查看内存泄露情况,有几个常用的功能说明一下:

  1. 打开hprof文件:进入classes视图,根据(instance Count和Size)基本可以确定哪个类的对象出现问题。比如(java.util.TreeMap$Entity有28018631个实例,大小为1120MB)
    用jprofile查看hprof文件
  2. 根据常识,应该java.util.TreeMap类有个Entry的Size应该很大。
  3. 查看java.util.TreeMap,右键->Use Selected Instance
  4. 选择Outgoing reference 视图(可以查看对象拥有的其他对象句柄,也就是对象属性)。看Retained Size列(或者size属性,有的时候Retained size不灵光),看大小就能确定是哪个对象内存溢出了。
    用jprofile查看hprof文件
  5. 找到对应的对象,右键->Use Selected Instance
  6. 选择Incoming refrences视图(该视图显示哪些对象拥有本对象的句柄),在这个视图下有个Show Paths To GC Root的按钮,点击,基本能确定我们哪开代码有问题了。
    用jprofile查看hprof文件

相关文章:

  • 2022-12-23
  • 2021-07-23
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-24
  • 2022-12-23
猜你喜欢
  • 2021-04-25
  • 2022-12-23
  • 2021-04-24
  • 2021-07-27
  • 2022-01-23
  • 2022-01-19
  • 2022-12-23
相关资源
相似解决方案