-XX:G1MixedGCCountTarget
-XX:G1ReservePercent
-XX:MaxTenuringThreshold
五、Shenandoah GC
JDK12开始引入了Shenandoah GC , 它的主要目标是使99.9%的停顿小于10ms , 这种算法与其它GC算法的主要区别是引入了一个Concurrent Evacuation的过程 , 在这一过程中 , JVM将对象集合从集合集复制到其它区别 。
它的JVM参数配置如下:
-XX:+UseShenandoahGC
六、Z GC
Z GC据说与Azul的Zing 中的C4 GC是完全等价的 , 这是一款性能比G1优秀的垃圾收集器 , 在JDK11中 , Z GC被以实验性的特性引入 , 在JDK15中正式投入使用 。 在JDK16发布后 , GC暂停时间已经缩小到1ms以内 , 并且时间复杂度为o(1)了 , 这也意味着GC停顿时间是一个固定值 , 不会受到堆内存大小的影响了 。
在Z GC中 , 为了更灵活高效的管理内存 , 使用了内存多重映射 , 把同一块儿物理内存映射为Marked0、Marked1、Remapped三个虚拟内存 。 当应用程序创建对象时 , 会在堆上申请一个虚拟地址 , 这时 ZGC 会为这个对象在 Marked0、Marked1 和 Remapped 这三个视图空间分别申请一个虚拟地址 , 这三个虚拟地址映射到同一个物理地址 。 Marked0、Marked1 和 Remapped 这三个虚拟内存作为 ZGC 的三个视图空间 , 在同一个时间点内只能有一个有效 。 ZGC 就是通过这三个视图空间的切换 , 来完成并发的垃圾回收 。
它的JVM参数配置如下:
-XX:+UseZGC
七、Epsilon GC
区别与其它GC , 与Z GC一起在JDK11中被引入的Epsilon GC是A NoOp Garbage Collector(没有操作的垃圾收集器) 。 JDK上对这个特性的描述是:开发一个处理内存分配但不实现任何实际内存回收机制的GC ,一旦可用堆内存用完 , JVM就会退出 。 也就是说 , 这是一个没有什么卵用的GC 。 它的作用主要在于进行性能测试 , 它可以有效的过滤掉GC对于性能的影响 , 因为它什么也不做 。 另外它也可以用于进行内存压力测试 , 看看多久程序会崩溃 , 用于检测自己的代码质量 。
它的JVM参数配置如下:
-XX:+UseEpsilonGC
【算法|JVM有几种垃圾回收(GC)算法,你知道吗?】
- 手机系统|为什么越来越多人,不爱更新“手机系统”了?这其中有什么猫腻?
- 人工智能比外星人更可怕?科学家警告:一旦有了自我意识,或会威胁人类
- 苹果|传苹果iOS 16将有重大变化:有全新交互、外观与iOS 15相似
- 液晶显示器|买低价单LCD智能投影请注意:不是所有液晶投影都叫3LCD
- 日前的IntelOn产业创新峰会上|双芯功耗只有区区75W!Intel全新数据中心显卡首次实拍
- 索尼|我国机关和国有企业将置换5000万台国产PC?
- 盈通|甜品也有高颜值!盈通RX 6600XT游戏高手让你心动
- 华硕|高颜值华硕a豆新版将至,或搭载12代H45处理器,还有航天定制版
- 腾讯云|音乐会结束,不是所有虚拟人都要奔向元宇宙
- 微软|华为高管余承东说:未来手机厂商只剩2、3家,你觉得有道理吗