一次查找JAVA频繁GC的过程

参考:
Win10 下查找占用CPU最多的线程
https://blog.csdn.net/jgwei/article/details/12079147
安卓的频繁GC
频繁Full GC的分析和解决
介绍GC各代的原理
关于jmap -histo 中 C B I等字符含义

Linux下查看的话可用:top -H -p PID

生成Jstack的记录
jstack -l 5683 > 5683.stack

统计各代对象的内存使用:
jmap -heap 4488

另外,似乎每次加live的话,会触发一次FullGC

Java dump heap

分析Heap的工具:http://www.eclipse.org/mat/

如果MAT的内存不足:

open the MemoryAnalyzer.ini file from your MAT installation directory.
change the default -Xmx1024m to a larger size for e.g. if you have to analyze a 4GB heap dump then you can replace -Xmx1024m with -Xmx5g or -Xmx6g

关于程序退出内存泄露是否会被释放的讨论:
https://stackoverflow.com/questions/2975831/is-leaked-memory-freed-up-when-the-program-exits

关于Win10内存占用过高,并且与任务管理器显示不符的问题:
https://www.jianshu.com/p/e74ea6105845

你可能感兴趣的:(一次查找JAVA频繁GC的过程)