1. jstat
用于了解新增对象速度
jstat -gc PID 查看Java进程的内存和GC情况
S0C:这是From Survivor区的大小
S1C:这是To Survivor区的大小
S0U:这是From Survivor区当前使用的内存大小
S1U:这是To Survivor区当前使用的内存大小
EC:这是Eden区的大小
EU:这是Eden区当前使用的内存大小
OC:这是老年代的大小
OU:这是老年代当前使用的内存大小
MC:这是方法区的大小
MU:这是方法区的当前使用的内存大小
YGC:这是系统运行迄今为止的Young GC次数
YGCT:这是Young GC的耗时
FGC:这是系统运行迄今为止的Full GC次数
FGCT:这是Full GC的耗时
GCT:这是所有GC的总耗时
jstat -gc PID 1000 10 1秒中更新出来最新的一行jstat统计信息,一共执行10次jstat统计
观察新生代对象增长速率、Young GC触发频率和耗时、每次Young GC后有多少对象是存活和进入老年代。
2、jmap和jhat
由于了解什么对象占据多少主要内存
jmap -heap PID 打印堆信息,可以直接用jstat看
jmap -histo PID 快速查看内存从大到小排序
jmap -dump:live,format=b,file=dump.hprof PID 导出堆快照
jhat dump.hprof -port 7000 启动jhat