1、JVM的内存分配参考文章:
https://www.cnblogs.com/wangjzh/p/5258254.html
2、 java之GC
https://www.cnblogs.com/hnrainll/archive/2013/11/06/3410042.html
3、JDK8的Metaspace
https://www.cnblogs.com/ygj0930/p/6522828.html
https://www.cnblogs.com/xiaoxi/p/6486852.html
4、JVM调优的几种工具:
线上问题检测:内存溢出、死锁的检测工具
1、jps JVM进程状况查看
2、jstat JVM统计信息监控工具
3、jinfo java配置信息
4、jmap java内存映射工具(检测内存溢出)
5、jhat java堆快照分析工具
6、jconsole java监控与管理平台(检测死锁)
7、visualVM 查看JVM应用程序的详细信息:非常好用。
检测死锁,检测gc等等。
8.、MAT
MAT是什么?
MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的Java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。
通常内存泄露分析被认为是一件很有难度的工作,一般由团队中的资深人士进行。不过要介绍的 MAT(Eclipse Memory Analyzer)被认为是一个“傻瓜式“的堆转储文件分析工具,你只需要轻轻点击一下鼠标就可以生成一个专业的分析报告。和其他内存泄露分析工具相比,MAT 的使用非常容易,基本可以实现一键到位,即使是新手也能够很快上手使用。
9、GChisto
GChisto
GChisto是一款专业分析gc日志的工具,可以通过gc日志来分析:Minor GC、full gc的时间、频率等等,通过列表、报表、图表等不同的形式来反应gc的情况。虽然界面略显粗糙,但是功能还是不错的