博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Heap Dump与Analyzer
阅读量:7198 次
发布时间:2019-06-29

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

堆转储文件中有什么呢?

每一个类有多少个对象,它们的值是什么,都可以在堆转储文件中找到。

1.heap dump

除了使用visual VM 外,还可以使用jmap命令。特别是远程机器不给你开放端口连时,只能使用原始的命令行工具。

//将pid=9406这个java进程的堆,dump到heapDump.hprof文件中。live表示只输出存活对象的信息jmap -dump:live,format=b,file=heapDump.hprof 9406
这只二进制格式的文件,无法直接阅读。后缀hprof可以理解为Heap PROFile。

2.visual VM简单分析

图2-1 visual VM的heapDump文件分析视图

3.Memory Analyzer

eclipse的一个插件。在Eclipse Marketplace中搜索即可安装。免费,功能比visualVM强大。

图3-1 搜索并安装Memory Analyzer

安装过后,即可打开一个.hprof文件尝试一下。

图3-2 Memory Analyzer的视图

4.OQL 对象查寻语言

OQL,Object Query Language,对象查询语言。

堆转储文件中的类有上千个,像java.lang.String这样的热门类,对象可能也有数千个。如何快速地查找自己感兴趣的对象,就要用到OQL了。

visualVM中的OQL与Memory Analyzer中的OQL语法是不一致的,需要注意!!

4.1 Memory Analyzer的语法

//在String类中搜索值为"Mozilla.*"的对象。需要注意通配符为‘*’,不是sql中的'%'select * from java.lang.String s where toString(s) like "Mozilla.*"

5.shallow size 与 retained size

Shallow size ,是该对象自己的基本类型数据的大小之和。
java的引用相当于c++的指针,因此在64位平台上,占8个字节,在32位平台上占4个字节。
Retained size,是该对象自己的shallow size加上从该对象能
直接或间接访问到对象的shallow size之和。
你可能感兴趣的文章
51cto我来了
查看>>
Linux的Web服务基础概念
查看>>
LNMP搭建
查看>>
RecyclerView的基础使用
查看>>
nginx学习笔记
查看>>
安装PHP扩展eaccelerator加速器
查看>>
SVN 学习
查看>>
SmartSVN设置ignoreList
查看>>
ios-网址中的中文或者非法字符转换
查看>>
自定义通知与系统通知的学习(详解)
查看>>
[翻译]Selenium自动化测试框官网翻译-目录
查看>>
Application tried to present modal view controller on itself
查看>>
再见2011,奋斗2012
查看>>
菜鸟学Linux 第051篇笔记 web-server, http
查看>>
我的友情链接
查看>>
Windows Server 2008遗忘管理员密码后的解决方法
查看>>
传统电脑与终端机的区别优势
查看>>
"廖雪峰的Git教程"学习笔记
查看>>
mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey
查看>>
sublime text 2 替换ue
查看>>