linux下分析Java程序内存汇总
使用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,