G1垃圾回收器在多线程环境下如何进行优化调整?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3295个文字,预计阅读时间需要14分钟。
一、序言目前,企业级主流使用的Java版本是8,其垃圾回收器支持手动修改为G1。G1垃圾回收器是Java 11的默认设置,因其长时间运行的能力,现阶段的垃圾回收器优化意味着针对长任务执行更优。
一、序言目前企业级主流使用的Java版本是8,垃圾回收器支持手动修改为G1,G1垃圾回收器是Java 11的默认设置,因此G1垃圾回收器可以用很长时间,现阶段垃圾回收器优化意味着针对G1垃圾回收器优化。
为了简化讨论,下面假设针对4C/16G物理机器进行优化。
G1管理的最大堆大小为64G。每个Region的大小通过-XX:G1HeapRegionSize来设置,大小为1~32MB,默认最多可以有2048个Region,G1能管理的最大堆内存是32MB*2048=64G。
使用G1垃圾回收器最小堆内存应为1MB*2048=2GB,低于此值建议使用其它垃圾回收器。
Region大小为1~32MB,具体取值有1MB、2MB、4MB、8MB、16MB、32MB,Region大小优化与大对象有关,当对象占用内存超过Region的一半时将被视为大对象。
被标记为大对象将不利于垃圾回收。
3、获取默认值查看本地JVM特别是G1垃圾回收器当前的默认值。
本文共计3295个文字,预计阅读时间需要14分钟。
一、序言目前,企业级主流使用的Java版本是8,其垃圾回收器支持手动修改为G1。G1垃圾回收器是Java 11的默认设置,因其长时间运行的能力,现阶段的垃圾回收器优化意味着针对长任务执行更优。
一、序言目前企业级主流使用的Java版本是8,垃圾回收器支持手动修改为G1,G1垃圾回收器是Java 11的默认设置,因此G1垃圾回收器可以用很长时间,现阶段垃圾回收器优化意味着针对G1垃圾回收器优化。
为了简化讨论,下面假设针对4C/16G物理机器进行优化。
G1管理的最大堆大小为64G。每个Region的大小通过-XX:G1HeapRegionSize来设置,大小为1~32MB,默认最多可以有2048个Region,G1能管理的最大堆内存是32MB*2048=64G。
使用G1垃圾回收器最小堆内存应为1MB*2048=2GB,低于此值建议使用其它垃圾回收器。
Region大小为1~32MB,具体取值有1MB、2MB、4MB、8MB、16MB、32MB,Region大小优化与大对象有关,当对象占用内存超过Region的一半时将被视为大对象。
被标记为大对象将不利于垃圾回收。
3、获取默认值查看本地JVM特别是G1垃圾回收器当前的默认值。

