1. 代码是怎么运行起来的
2. 垃圾回收算法的演进
5. G1简介
7. 定位栈内存溢出实例
8. 定位metadata区内存溢出实例
9. 定位堆内存溢出实例
10. 定位 频繁fullGC实例
后面的几个实例篇暂时不想写了
如何将上面串联起来呢?
首先,我们将代码编译、解析、运行,在此过程中,我们必然要了解各个阶段,我们的数据在JVM内存模型中是如何存储的,在系统运行的过程中,内存必然会有满的时候,此时便会触发垃圾回收,而垃圾回收算法的制定,反过来又会影响内存的设计与优化,两者互相作用,互相影响。
上面简单的从宏观的角度梳理了JVM,接下来必然要细化到具体的细节,常见的垃圾回收算法的执行过程,各种垃圾回收算法使用的场景,更重垃圾回收算法对应的内存模型是什么样的,有时如何相互影响的?何时触发GC,如何调整进而影响触发频率和STW时间等等。
看完了上述原理之后,在解决JVM问题的时候,必然需要一些工具来定位,并且结合现实的场景来分析JVM运行过程中出现的问题。
以上就是关于写JVM文章的一个思路。
perfma链接:console.perfma.com/