导航:首页 > 编程语言 > dumpjava内存

dumpjava内存

发布时间:2025-03-10 00:44:19

⑴ 如何通过mat从java内存mp中找到缓存对象中的所有字符串

生成java内存mp文件

标准做法,jmap mp,需要sudo权限,另外jmap指定的mp文件一定要是启动服务的用户可写,比如可以新创建一个文件夹

sudo mkdir /home/q/memmp
sudo chown resin:resin /home/q/memmp

sudo -u resin /home/q/java/default/bin/jmap -mp:live,format=b,file=/home/q/memmp/memMap.20130527.hprof ${pid}

把mp文件拿到本地

把mp文件压缩下,否则会很大,scp到本地

安装mat

直接在eclipse里:

1.Help->Install New Software

2.输入update site: http://download.eclipse.org/mat/1.2/update-site/,然后一直next就行了,安装完重启eclipse

3.最好创建一个单独的workspace来放内存mp文件

把mp文件导入mat

1.打开eclipse,选择上一步你创建的存放内存mp文件的workspace,我本机上是~/mat
2.打开刚才拿到本地的mp文件,然后等着mat解析就完了,注意这时候你可能需要修改eclipse安装文件下的eclipse.ini,调整下eclipse的jvm参数(xms和xmx),把heap调大些,否则解析过程会报OOM

3.解析完后会生成一个Overview,我们一般会选择org.apache.catalina.loader.WebappClassLoader,作为分析top
consumer的切入点,这是tomcat上web应用的classloader

4.单击饼图上org.apache.catalina.loader.WebappClassLoader的区域,会出现一个弹出菜单,选择List
Objects->with incoming references,因为所有的web应用内的对象都会引用它们自己的class
loader,也就是org.apache.catalina.loader.WebappClassLoader
5.得到如下所示列表,单击retained heap这个tab标签可以排序,选择按照占用内存的大小倒排序,得到了top memory
consumers列表

定位缓存对象

我们关心的是top consumer里的RtTreeCache里,有多少重复房型,怎么得到的呢,follow the steps:

1.查看RtTreeCache对象的outgoing
reference,因为我们需要看这个对象里面的属性,属性对象也就是RtTreeCache对象引用的对象,也就是outgoing reference

2.找到我们需要分析的数据在对象结构中的位置

3.可以看到我们要查找的目标是RtTreeCache对象下的所有HotelRtTree对象的rtReverseMap对象属性下的table数组内所有entry的key,我们接下来就看看怎么把这个冗长的关系转化成一个简单的OQL语句

写MAT OQL

OQL是MAT里的一个内嵌查询语言,它的官方描述很形象:
Memory Analyzer has a built-in object query
language (OQL) that allows to query the heap mp with custom SQL-like queries. Just
think of classes as tables, objects as rows, and fields as columns.

总结

jmap + mat是我们分析java内存的利器,而通过mat
oql,我们可以从mp文件里提取出更多的类似于有多少内容相同的不同字符串对象等信息来帮助我们做技术决策。

阅读全文

与dumpjava内存相关的资料

热点内容
lcd单片机驱动 浏览:643
通达信主力拉升出货指标公式源码 浏览:635
廉洁pdf 浏览:16
批量用修改多个文件夹及子目录 浏览:315
王者每个服务器爆满怎么办 浏览:947
安卓手机如何清除所有的数据 浏览:978
激光打标机加密狗驱动无法启动 浏览:908
硅谷程序员题库 浏览:558
安卓系统怎么开车模式 浏览:940
网剧程序员那么可爱15集完整版 浏览:172
pdf怎么生成 浏览:934
pythondict树 浏览:582
ilo2命令 浏览:292
会饮pdf 浏览:88
软件加密到哪里去了 浏览:604
nas可以做云服务器吗 浏览:623
app利率怎么算 浏览:8
广电运通程序员 浏览:568
程序员放弃后会怎样 浏览:189
河北模具编程 浏览:192