JVM 垃圾收集器中的自适应大小调整
Adaptive Sizing in JVM garbage collectors
对于 Oracle JVM 1.8 Server 模式,Parallel
、CMS
和 G1
收集器是否可以动态更改年轻代与老年代的比例?
这三个收集器中新生代和老年代的默认比例是多少?
Parallel = -XX:+UseParallelGC -XX:+UseParallelOldGC
CMS = -XX:+UseConcMarkSweepGC
G1 = -XX:+UseG1GC
好吧,这可能无法回答关于 GC 比率的确切细节,但这篇名为 oraclecollectors 的文章讲述了一些要在此处详细说明的内容:-
谈到垃圾收集器的组合,它不会爆炸成十几种组合,因为并非所有这些收集器都相互协作。
G1
实际上是一个 反社会收藏家,不喜欢与其他人一起工作。
串行收集器是 "last man picked" 收集器
'PS' 收藏家喜欢彼此合作;
ParNew
和 Concurrent
收集器配合得很好。
从 Java9 开始(加上能够关闭自适应大小调整策略)和 JEP 248:Making G1 the default Garbage Collector,差不多就是这样了成为一个GC。直到现在,尽管仍然有一个可能的列表作者在垃圾 collection 算法选项方面提出了。从链接文章本身共享屏幕:
希望对您有所帮助。
默认值通常与版本和机器相关,或者可以根据设置的其他参数而改变。所以最好只查询JVM。
例如使用 java -XX:+UseG1GC -XX:+PrintFlagsFinal
查看默认值,包括基于选择的 G1 派生的默认值。
G1 和并行收集器支持自适应调整大小,CMS 不支持,而是在运行时调整 tenuring 阈值。
对于 Oracle JVM 1.8 Server 模式,Parallel
、CMS
和 G1
收集器是否可以动态更改年轻代与老年代的比例?
这三个收集器中新生代和老年代的默认比例是多少?
Parallel = -XX:+UseParallelGC -XX:+UseParallelOldGC
CMS = -XX:+UseConcMarkSweepGC
G1 = -XX:+UseG1GC
好吧,这可能无法回答关于 GC 比率的确切细节,但这篇名为 oraclecollectors 的文章讲述了一些要在此处详细说明的内容:-
谈到垃圾收集器的组合,它不会爆炸成十几种组合,因为并非所有这些收集器都相互协作。
G1
实际上是一个 反社会收藏家,不喜欢与其他人一起工作。串行收集器是 "last man picked" 收集器
'PS' 收藏家喜欢彼此合作;
ParNew
和Concurrent
收集器配合得很好。
从 Java9 开始(加上能够关闭自适应大小调整策略)和 JEP 248:Making G1 the default Garbage Collector,差不多就是这样了成为一个GC。直到现在,尽管仍然有一个可能的列表作者在垃圾 collection 算法选项方面提出了。从链接文章本身共享屏幕:
希望对您有所帮助。
默认值通常与版本和机器相关,或者可以根据设置的其他参数而改变。所以最好只查询JVM。
例如使用 java -XX:+UseG1GC -XX:+PrintFlagsFinal
查看默认值,包括基于选择的 G1 派生的默认值。
G1 和并行收集器支持自适应调整大小,CMS 不支持,而是在运行时调整 tenuring 阈值。