深入JVM原理(十)G1收集器

时间:2023-01-02 16:37:02

目录

深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169
深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979
深入JVM原理(三)JVM 垃圾收集:http://blog.csdn.net/qq_34707744/article/details/79281249
深入JVM原理(四)JVM垃圾回收流程:http://blog.csdn.net/qq_34707744/article/details/79281852
深入JVM原理(五)Java堆内存调整参数(调优关键):http://blog.csdn.net/qq_34707744/article/details/79287403
深入JVM原理(六)年轻代:http://blog.csdn.net/qq_34707744/article/details/79287900
深入JVM原理(七)老年代、永久代和元空间:http://blog.csdn.net/qq_34707744/article/details/79288787
深入JVM原理(八)JVM垃圾回收策略:http://blog.csdn.net/qq_34707744/article/details/79289110
深入JVM原理(九)JVM垃圾回收策略参数配置:http://blog.csdn.net/qq_34707744/article/details/79289556
深入JVM原理(十)G1收集器:http://blog.csdn.net/qq_34707744/article/details/79290595
深入JVM原理(十一)Java引用类型:http://blog.csdn.net/qq_34707744/article/details/79291451

深入JVM原理(十)G1收集器

深入JVM原理(十)G1收集器

在G1收集器中不再区分所谓的年轻代、老年代内存空间。所有的内存空间就是一块,但是划分为不同的子区域。
所以,相较于其他的策略,更加便利;

虽然G1收集器里面将整个内存区域都混合在了一起,但是其本身也是在小范围内进行年轻代和老年代的区分,就是说依然会采用不同的GC方式来处理不同的子区域。
深入JVM原理(十)G1收集器

不用的内存区将释放,有一些数据之间拷贝到老年代;
深入JVM原理(十)G1收集器

所有的垃圾内存的保存区域有可能会被清空后重新分配;
老年代的处理流程不一样,因为任何时候如果要想标注老年代的不用内存空间,都需要进行一些暂停,而G1中最大好处是他不用全内存扫描,只是区域性的扫描;

深入JVM原理(十)G1收集器

深入JVM原理(十)G1收集器

深入JVM原理(十)G1收集器

深入JVM原理(十)G1收集器

深入JVM原理(十)G1收集器

深入JVM原理(十)G1收集器

清楚了G1的基本运行原理后,那么下面进行一些G1的配置。
但是,目前可能还不成熟,所以谨慎使用。而最好内存是在80G内存的机器下使用。

深入JVM原理(十)G1收集器

范例:使用G1回收器
(java -Xmx10m -Xms10m -XX:+UseG1GC -XX:+PrintGCDetails TestDemo)
G1处理和传统的垃圾收集策略是不同的,关键的因素是它将所有的内存进行了区域性的划分。