第一范文网 - 专业文章范例文档资料分享平台

java - 实用工具笔记

来源:用户分享 时间:2025/5/24 14:09:03 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

数量)。

可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。

使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,

可以对比出GC回收了哪些对象。jmap -dump:format=b,file=outfile 3024可以将3024进程的内存heap输出出来到outfile文件里,

再配合MAT(内存分析工具(Memory Analysis Tool),

使用参见:http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.aspx)或与jhat (Java Heap Analysis Tool)一起使用,

能够以图像的形式直观的展示当前内存是否有问题。 64位机上使用需要使用如下方式: jmap -J-d64 -heap pid 4.2 命令格式 SYNOPSIS

jmap [ option ] pid

jmap [ option ] executable core

jmap [ option ] [server-id@]remote-hostname-or-IP 4.3 参数说明 1)、options:

executable Java executable from which the core dump was produced. (可能是产生core dump的java可执行程序) core 将被打印信息的core dump文件

remote-hostname-or-IP 远程debug服务的主机名或ip server-id 唯一id,假如一台主机上多个远程debug服务 2)、基本参数:

-dump:[live,]format=b,file= 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件. -finalizerinfo 打印正等候回收的对象的信息.

-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况. -histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

-permstat 打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来.

-F 强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效. -h | -help 打印辅助信息 -J 传递参数给jmap启动的jvm.

pid 需要被打印配相信息的java进程id,创业与打工的区别 - 博文预览,可以用jps查问. 4.4 使用例子 4.4.1 打印类信息

jmap -J-d64 -histo:live 10968 > /tmp/class.tx

4.4.2 以二进制形式输出heap内容到文件

jmap -J-d64 -dump:live,format=b,file=/tmp/jmap_b.bin 10968 4.4.3 打印准备回收的对象的信息 jmap -J-d64 -finalizerinfo 10968 4.4.4 打印持久层的信息

4.4.5 打印堆heap的信息

jmap -J-d64 -heap 10968 Attaching to process ID 10968, please wait... Debugger attached successfully. Server compiler detected. JVM version is 17.1-b03

using thread-local object allocation. Parallel GC with 8 thread(s)

Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70

MaxHeapSize = 3145728000 (3000.0MB) NewSize = 1310720 (1.25MB) MaxNewSize = 268435456 (256.0MB) OldSize = 5439488 (5.1875MB) NewRatio = 2 SurvivorRatio = 8

PermSize = 134217728 (128.0MB) MaxPermSize = 268435456 (256.0MB)

Heap Usage:

PS Young Generation Eden Space:

capacity = 243793920 (232.5MB)

used = 64814496 (61.811920166015625MB) free = 178979424 (170.68807983398438MB) 26.585772114415324% used From Space:

capacity = 11403264 (10.875MB)

used = 9095024 (8.673690795898438MB) free = 2308240 (2.2013092041015625MB) 79.75807628412356% used To Space:

capacity = 12320768 (11.75MB)

used = 0 (0.0MB)

free = 12320768 (11.75MB) 0.0% used PS Old Generation

capacity = 2877292544 (2744.0MB)

used = 328689408 (313.462646484375MB) free = 2548603136 (2430.537353515625MB) 11.423565833978682% used PS Perm Generation

capacity = 134217728 (128.0MB)

used = 44710992 (42.63972473144531MB) free = 89506736 (85.36027526855469MB) 33.31228494644165% used

5. Jhat

5.1 简介

jhat命令 -- Java Head Analyse Tool

用途:是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言 5.2 使用方法: 1> 到处堆文件

jmap -J-d64 -dump:live,format=b,file=/tmp/jmap_b.bin 10968 2> 分析堆文件

jhat -J-d64 -port 9015 /tmp/jmap_b.bin 指定访问端口为:9015 3> 查看:

http://ip:9015/

6. Mat

6.1 简介

MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,

它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,

看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。 6.2 为什么使用MAT

当服务器应用占用了过多内存的时候,会遇到OutOfMemoryError。如何快速定位问题呢? Eclipse MAT的出现使这个问题变得非常简单。它能够离线分析dump的文件数据。

Eclipse MAT是SAP公司贡献的一个工具,可以在Eclipse网站下载到它,完全免费的。它可比Sun提供的内存镜像分析工具jhat要强太多了。

6.3 使用 6.3.1 下载

到http://www.eclipse.org/mat/downloads.php下载windows系统安装版或eclipse使用的插件

我这里使用的是安装版本是:

MemoryAnalyzer-1.1.1.20110824-win32.win32.x86.zip 解压后直接执行: 界面如下:

6.3.2 生成heap的二进制堆文件

jmap -J-d64 –dump:format=b,file=/tmp/jmap_b.bin 10968 6.3.3 用mat打开jmap_b.bin文件

选择:Open Heap Dump…打开heap二进制文件。 然后出现如下界面:

搜索更多关于: java - 实用工具笔记 的文档
java - 实用工具笔记.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c30aoo8adb034ka394oxu_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top