您的位置:首页 > 运维架构 > Linux

linux下分析Java程序内存汇总

2016-06-21 14:34 519 查看


使用pmap查看进程内存


运行命令

使用pmap可以查看某一个进程(非java的也可以)的内存使用使用情况,

命令格式:

pmap 进程id


示例说明

例如运行:

pmap 12358

显示结果如下图(内容较多, 分成几张图说明):

内容开始部分



内容结束部分



上图中,

第一列,内存块起始地址

第二列,占用内存大小

第三列,内存权限

第四列,内存名称,anon表示动态分配的内存,stack表示栈内存

最后一行,占用内存总大小,请注意,此处为虚拟内存大小,占用的物理内存大小可以通过top查看


使用jmap查看Java进程对象使用情况


运行命令

使用jmap可以查看某个Java进程中每个对象有多少个实例,占用多少内存,

命令格式:

jmap -histo 进程id


示例说明

例如运行:

jmap -histo  12538

显示结果如下图(内容较多, 分成几张图说明):

内容开始部分



内容结束部分



上图中:

第一列,序号,无实际意义

第二列,对象实例数量

第三列,对象实例占用总内存数,单位:字节

第四列,对象实例名称

最后一行,总实例数量与总内存占用数

另,部分示例说明(还没弄明白,后续补充):

[C,

[B,

[I,

[J,

[L,


使用jstat查看Java内存分布及回收情况

直接看这个帖子:
http://blog.csdn.net/zlzlei/article/details/46471627


补充

发现一个不错的jmap,jstat等java分析工具的博客,如下:
http://blog.csdn.net/fenglibing/article/details/6411999
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: