浏览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)”就会显示最近的垃圾回收根节点。

使用VisualVM查看Java Heap Dump的更多相关文章

  1. 性能监控之常见 Java Heap Dump 方法

    一.前言 在本文中,我们总结下抓 Java dump 的几种不同方法. Java Heap Dump 是特定时刻 JVM 内存中所有对象的快照.它们对于解决内存泄漏问题和分析 Java 应用程序中的内 ...

  2. Java heap dump触发和分析(转)

    为了分析java应用的内存泄漏,使用thread dump往往解决不了问题.使用jstat[eg:jstat-gcutil pid 1000 5]工具查看运行的java应用的heap size,per ...

  3. Java Heap dump文件分析工具jhat简介

    jhat 是Java堆分析工具(Java heap Analyzes Tool). 在JDK6u7之后成为标配. 使用该命令需要有一定的Java开发经验,官方不对此工具提供技术支持和客户服务. 用法: ...

  4. 通过分析java heap dump解决生产问题

    最近在生产环境遇到一个问题,正常情况下,ECS CPU始终保持在10%以下,内存也只占用40%左右,但是连续2天出现了CPU占用100%的情况,然后系统卡住.看阿里云的ECS监控,能看到CPU飙到了1 ...

  5. 分析 Java heap dump工具之IBM HeapAnalyzer

    IBM HeapAnalyzer是一款免费的JVM内存堆的图形分析工具,它可以有效的列举堆的内存使用状况,帮助分析Java内存泄漏的原因. 功能与MAT类似. 1.下载 https://www.ibm ...

  6. Java Heap Dump On OutOfMemoryError

    -XX:+HeapDumpOnOutOfMemoryError Batch "C:\Program Files\Java\jdk1.8.0_162\bin\java.exe" -X ...

  7. Java内存泄漏分析系列之六:JVM Heap Dump(堆转储文件)的生成和MAT的使用

    原文地址:http://www.javatang.com JVM Heap Dump(堆转储文件)的生成 正如Thread Dump文件记录了当时JVM中线程运行的情况一样,Heap Dump记录了J ...

  8. java程序性能分析之thread dump和heap dump

    一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题.这些文件记录了JVM运行期间的内存占用.线程执行等情况,这就是我们常说的 ...

  9. 013-程序性能分析之thread dump和heap dump

    一.dump基本概念 主要用于故障定位(尤其是out of memory)和性能分析.主要记录了JVM运行期间的内存占用.线程执行等情况,这就是常说的dump文件.常用的有heap dump和thre ...

随机推荐

  1. 破解Windows Server 2003只允许3个用户远程登陆

    导读:WIN2003在使用远程桌面登录的时候,一台机器默认情况下只允许3个用户同时登录. 这很不方便.我们修改WIN2003远程桌面的连接数,可以设置3个以上用户远程桌面. 1.启动终端服务:在&qu ...

  2. C#操作MYSQL遇到0000-00-00日期报错的原因

    今天在做一个C#连接MYSQL数据库,并读取数据库的内容,遇到了0000-00-00日期转换报错:unable to convert MySQL date/time value to System.D ...

  3. noip201506 Message 信息传递

    试题描述: 有 n 个同学(编号为 1 到 n )正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 T_i 的同学.游戏开始时,每人都只 ...

  4. ubuntu 14.0 下github 配置

    一:创建Repositories 1:首先在github下创建一个帐号.这个不用多说,然后创建一个Repositories. 2:然后在ubuntu下安装git相关的东东: 1 sudo apt-ge ...

  5. Python学习笔记整理(十)Python的if测试

    if语句是选取要执行的操作. 一.if语句 1.通用格式 形式是if测试,后面跟着一个或多个可选的elif(else if)测试,以及一个最终选用的else块.测试和else部分可以结合嵌套语句块,缩 ...

  6. 转:DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)之一

    转载来自:http://blog.csdn.net/shanghaiqianlun/article/details/6976804 作者:shanghaiqianlun的专栏 1.结构框图: 2.管脚 ...

  7. PHP中的常量

    常量与变量不一样,一旦被定义就可以全局访问. 例如: <?php define('CONST_NAME','shiyingyan'); define('RESULT_OK',1); define ...

  8. iconv any encoding to UTF-8

    http://stackoverflow.com/questions/9824902/iconv-any-encoding-to-utf-8

  9. 关于 "Context" 模式(基于COM思想IUnknown思想)

    有同事很喜欢用Context模式,觉得是自己"首创", 我有些自己的想法, 或者大家可以发表下自己的观点.   什么是Context模式? 23种设计模式中没有这个模式, 是同事自 ...

  10. 生成excel内存溢出问题的解决方式

    常用的excel生成工具包括jxl.poi.但二者都存在一个问题:生成excel需要大量的消耗内存.如果一次性往excel中写入的数据足够的多将导致内存溢出. 1.数据写入excel为什么会大量的消耗 ...