博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用VisualVM查看Java Heap Dump
阅读量:7058 次
发布时间:2019-06-28

本文共 1342 字,大约阅读时间需要 4 分钟。

【本文转载于】

浏览Heap Dump

可以使用VisualVM浏览heap dump文件的内容,从而快速查看在堆中分配的对象。Heap dumps在主窗口的heap dump子标签页中显示。你可以打开保存在本地的heap dump文件(.hprof)或者使用VisualVM捕获正在运行的程序的heap dumps。

一个heap dump是Java虚拟机(JVM)在某一时刻所有对象的快照。JVM从堆中为所有的类实例和数组分配内存。当一个对象不再被使用并且没有对它的引用时,垃圾回收器回收其堆内存。通过查看堆,你可以找到对象创建的位置,发现对象的引用。如果JVM试图从堆中移除不再需要的对象时失败了,VisualVM可以定位到离该对象最近的垃圾回收根(garbage collecting root)。

打开Heap Dump文件

如果你有一个保存在本地的heap dump文件,在VisualVM中通过File > Load菜单项加载该文件。VisualVM能打开.hprof格式的heap dumps文件。打开后,heap dump作为主窗口的一个子标签页。

捕获Heap Dump

可以使用VisualVM捕获一个本地运行的应用程序的heap dump。捕获的heap dump文件是一个临时文件,关闭VisualVM后自动删除,若要保留,需要将其另存为文件。

可通过以下两种方法捕获heap dump:

  • 在左侧“Application”(应用程序)子窗口中右击相应的应用程序,选择Heap Dump(堆Dump)。
  • 在Monitor(监视)子标签页中点击Heap Dump(堆Dump)按钮。

本地应用程序的Heap dumps作为应用程序标签页的一个子标签页打开。同时,heap dump在左侧的Application(应用程序)栏中对应一个含有时间戳的节点。右击这个节点选择save as(另存为)即可将heap dump保存到本地。

浏览Heap Dump

VisualVM提供了一下可视化视图来浏览heap dumps:

Summary View(概述)

打开一个heap dump时,VisualVM默认显示“概述”标签页。概述视图显示了该heap dump的捕获环境和其他系统属性。

概述实体

Classes View(类)

类视图显示了类列表和其对应的实例数量、所占比例。右击类名选择“Show in Instances View(在实例视图中显示)”即可查看指定类的实例列表。

点击列头可按指定列排序。可以使用类列表下方的“类名过滤器(Class Name Filter)”来过滤类,也可以通过右击一个类名选择“Show Only Subclasses(只显示子类)”来将显示结果限制为指定类的子类。

类视图

Instances View(实例数)

实例数视图显示了选中类的对象实例。在“实例(Instance)”栏中选中一个实例,右侧的“字段(Fields)”和“引用(References)”栏将显示该实例对应的字段和对它的引用。在引用栏中,右击一条并选择“显示最近的垃圾回收根节点(Show Nearest GC Root)”就会显示最近的垃圾回收根节点。

实例数

英文原文: 

你可能感兴趣的文章
MapReduce的数据流程、执行流程
查看>>
linux平滑重启php-fpm进程
查看>>
浅拷贝是啥
查看>>
ubuntu 12.04(64位)下如何搭建android开发环境
查看>>
多校聯合2013 B 小y的難題I
查看>>
淘宝的TProfiler使用日记
查看>>
VTP同步产生的问题
查看>>
CP复制命令详解
查看>>
一步一步跟着官方文档安装部署Openstack(icehouse)五
查看>>
mstp典型配置
查看>>
hadoop安装配置
查看>>
ubuntu下安装nodejs
查看>>
Apache设置404错误页面
查看>>
postgreSQL 2015-3-26
查看>>
PL/SQL中的数据类型隐式转换规则
查看>>
vim常用命令
查看>>
java.util.Date、java.sql.Date、Time、Timestamp
查看>>
从CentOS风波谈起:Linux企业版如何选择?
查看>>
安装zabbix2.4.8遇到的一些错误
查看>>
Linux:在终端中查看图片和电影
查看>>