jmap查看内存使用情况与生成heapdump
jmap查看内存使用情况与生成heapdump
如果想分析自己的JAVA Application时,可以使用jmap程序来生成heapdump文例:
jmap -heap 1234 (1234为进程号)
jmap是JDK自带的一个工具,非常小巧方便,其支持参数如下:
-heap:打印heap空间的概要,这里可以粗略的检验heap空间的使用情况。
例:
jmap -heap 12345
输出:
Attaching to process ID 2657, please wait...
Debugger attached successfully.
Client compiler detected.
JVM version is 1.5.0_16-b02
using thread-local object allocation.
Mark Sweep Compact GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 67108864 (64.0MB)
NewSize = 655360 (0.625MB)
MaxNewSize = 4294901760 (4095.9375MB)
OldSize = 1441792 (1.375MB)
NewRatio = 12
SurvivorRatio = 8
PermSize = 8388608 (8.0MB)
MaxPermSize = 67108864 (64.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):----------------------------------------新生代区
capacity = 4521984 (4.3125MB)
used = 1510200 (1.4402389526367188MB)
free = 3011784 (2.8722610473632812MB)
33.39684527853261% used
Eden Space:--------------------------------------------------------------------伊甸园区
capacity = 4063232 (3.875MB)
used = 1495992 (1.4266891479492188MB)
free = 2567240 (2.4483108520507812MB)
36.81778446320565% used
From Space:-------------------------------------------------------------------年轻代(幸存者乐园1)
capacity = 458752 (0.4375MB)
used = 14208 (0.0135498046875MB)
free = 444544 (0.4239501953125MB)
3.0970982142857144% used
To Space:-----------------------------------------------------------------------------年轻代(幸存者乐园2)
capacity = 458752 (0.4375MB)
used = 0 (0.0MB)
free = 458752 (0.4375MB)
0.0% used
concurrent mark-sweep generation:-------------------------------------------------老年代
capacity = 8589934592 (8192.0MB)
used = 0 (0.0MB)
free = 8589934592 (8192.0MB)
0.0% used
Perm Generation:----------------------------------------------------------------------永久代
capacity = 11796480 (11.25MB)
used = 11712040 (11.169471740722656MB)
free = 84440 (0.08052825927734375MB)
99.28419325086806% used
以上的输出很简单,第四行起开始输出此进程我们的JAVA使用的环境。
Heap Configuration,指在我们启动时设置的一些JVM参数。像最大使用内存大小,年老代,年青代,持久代大小等。有这个可以很简单的查看本进程的内存使用情况。也许进程占用的总内存比较多,但我们在这里可以看到真正用到的并没有多少,很多都是"Free"。内存使用的堆积大多在老年代,内存池露始于此,所以要格外关心“tenured generation”。
-heap:format=b:产生一个HeapDump文件,此为生成heapdump文件的重要参数。
例:jmap -heap:format=b 2657
会产生一个heap.bin的heapdump文件。
需要注意的是,此生成heapdump的参数为JDK1.5,在1.6中的格式为:
jmap -dump:live,format=b,file=xxx 2657
这里更加强大一些,可以指定是存活的对象,还有生成heapdump的文件名。
-histo:这里会生成一个类的统计报表,此表简单无比,如显示什么类有多少个实例,共占了多少字节等,如下:
Size Count Class description
-------------------------------------------------------
8394352 105 long[]
8293192 57202 char[]
7834776 14157 byte[]
6713592 53743 * ConstMethodKlass
4194320 1 com.xjawa.cms5server.Kontent[]
4055072 12319 int[]
3291104 85082 * SymbolKlass
3016040 53743 * MethodKlass
2774936 4253 * ConstantPoolKlass
1871480 4253 * InstanceKlassKlass
1811808 3990 * ConstantPoolCacheKlass
1488672 62028 java.lang.String
1203280 13258 java.lang.Object[]
-permstat:打印一些持久代上的内存使用状态,有“活”的,有“死”的。
-h 或者 -help:查看jmap所有可用命令及作用。

jmap查看内存使用情况与生成heapdump的更多相关文章
- jmap查看内存使用情况与生成heapdump--转
http://www.webspherechina.net/home/space.php?uid=191&do=blog&id=7572 如果想分析自己的JAVA Applicatio ...
- jstack(查看线程)、jmap(查看内存)和jstat(性能分析)
公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子.昨天晚上总结了一下jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令.供大家参考 1.Jstack 1.1 ...
- jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令 公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子.昨天晚上总结了一下jstack(查看线程).jma ...
- 命令:jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
命令:jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令 这些命令 必须 在 linux jdk bin 路径 下执行 eq: ./jstack 10303 即可 如果想把 ...
- free命令查看内存使用情况(转载)
linux free命令查看内存使用情况 时间:2016-01-05 06:47:22来源:网络 导读:linux free命令查看内存使用情况,free命令输出结果的各选项的含义,以及free结果中 ...
- Linux下查看内存使用情况方法总结
Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...
- 【查看内存】Linux查看内存使用情况(二)
Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...
- Linux 下查看内存使用情况方法总结
Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...
- LINUX查看内存使用情况 free
# free 显示结果如下: Mem:表示物理内存统计 total 内存总数 8057964KB used 已使用的内存 7852484KB free 空闲的内存数 205480KB shared 当 ...
随机推荐
- nohup和& 区别
&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出 &的意思是在后台运行, ./a.out & 的时候, 即使你用ctrl C, 那么a.out ...
- 全栈开发——动手打造属于自己的直播间(Vue+SpringBoot+Nginx)
前言 大学的学习时光临近尾声,感叹时光匆匆,三年一晃而过.同学们都忙着找工作,我也在这里抛一份简历吧,欢迎各位老板和猎手诚邀.我们进入正题.直播行业是当前火热的行业,谁都想从中分得一杯羹,直播养活了一 ...
- php分享三十二:php调试工具
一:phpdbg http://phpdbg.com/
- 关于java代码提交HTTP POST请求中文乱码的解决方法
首先说明下这些只是根据我工作常用经验的总结,可能不一定完全对,也不一定全面,但却是最通用的. JAVA里HTTP提交方式 httpurlconnection:jdk里自带的 httpclient:ap ...
- 已安装 SQL Server 2005,安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具
错误提示:已安装 SQL Server 2005 Express 工具.若要继续,请删除 SQL Server 2005 Express 工具. 解决方案: 修改注册表:HKLM\Software ...
- jquery 取子节点及当前节点属性值
分享下jquery取子节点及当前节点属性值的方法. <li class="menulink"><a href="#" rel="ex ...
- iOS 应用程序目录结构
iOS应用程序采用的是沙盒原理设计,普及一下知识:沙盒是在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限. 具体的特点有三点:1.每个应用程序都有自己的存储空间: ...
- 编写一个C语言函数,要求输入一个url,输出该url是首页、目录页或者其他url
编写一个C语言函数,要求输入一个url,输出该url是首页.目录页或者其他url 首页.目录页或者其他url 如下形式叫做首页: militia.info/ www.apcnc.com.cn/ htt ...
- 菜鸟学Java(六)——简单验证码生成(Java版)
验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等),然后将这些生成的字符绘制成一张图片,再在图片上加上一些干扰元素 ...
- [开源项目-MyBean轻量级配置框架] MyBean的特性和MyBean的开始
[概述] 自从mBean框架出生后,受到很多朋友的关注,在公司的外包项目中得到了不错的应用.由于mBean是公司的项目,不便开源,于是这几天利用晚上的时间和周末的时间重写了底层beanMananger ...