jvm参数优化,g1垃圾回收器提示unloading过长怎么优化呢? jvm参数设置:-XX:+UseG1GC -Xss256k
通过使用选项-XX:G1HeapRegionSize
来减少堆对象的数量或增加堆的大小来增加堆区域的大小。
选项和默认值描述
-XX:+G1UseAdaptiveConcRefinement
-XX:G1ConcRefinementGreenZone=
<ergo>
-XX:G1ConcRefinementYellowZone=
<ergo>
-XX:G1ConcRefinementRedZone=
<ergo>
-XX:G1ConcRefinementThreads=
<ergo>
并发记忆集更新(优化)使用这些选项来控制并发优化线程的工作分配。G1为这些选项选择人体工程学值,以便-XX:G1RSetUpdatingPauseTimePercent
在垃圾收集暂停中花费时间来处理所有剩余工作,并根据需要进行自适应调整。请谨慎更改,因为这可能会导致暂停时间过长。
-XX:+ReduceInitialCardMarks
这会将初始对象分配的并发记忆集更新(优化)工作分批处理。
-XX:-ParallelRefProcEnabled
这确定是否应由多个线程并行处理java.lang.Ref。*实例。
-XX:G1RSetUpdatingPauseTimePercent=
10
这确定了在更新RS阶段更新所有剩余的已记住集时应花费的总垃圾回收时间G1的百分比。G1使用此设置控制并发记忆集更新的数量。
-XX:G1SummarizeRSetStatsPeriod=
0
这是G1在多个GC中生成已记忆集合摘要报告的时间段。将此设置为零可禁用。生成记住的集合摘要报告是一项昂贵的操作,因此仅在必要时才应使用,并且其价值较高。使用gc+remset=trace
打印任何东西。
-XX:GCTimeRatio=
12
这是目标时间比例的除数,该目标时间比例是垃圾回收而不是应用程序所花费的时间。确定增加堆之前可以在垃圾回收中花费的目标时间比例的实际公式为1 / (1 + GCTimeRatio)
。此默认值导致目标大约有8%的时间用于垃圾回收。
使用-XX:MaxGCPauseMillis
或提供更大的堆来放松暂停时间目标
优化是自己摸索的,跟电脑本身配置有关。配置差,怎么优化都没有效果