java GC算法微调:CMS单独算法&;结合

java GC算法微调:CMS单独算法&;结合,java,garbage-collection,heap,heap-memory,concurrent-mark-sweep,Java,Garbage Collection,Heap,Heap Memory,Concurrent Mark Sweep,目前我正在使用CMS和ParNewGC的组合 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC 据我了解,CMS用于旧Gen GC,UserPareNewGC用于you Gen垃圾收集 如果我只将CMS作为单个参数传递,-XX:+UseConMarkSweepGC,CMS用于年轻一代和老一代的垃圾收集吗? 我认为UseParNewGC仍然用于young gen,尽管它还没有与CMS一起配置。但我想证实这个假设 我说得对吗 编辑:我正在使用JDK1.7版本。如果行

目前我正在使用CMS和ParNewGC的组合

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC
据我了解,CMS用于旧Gen GC,UserPareNewGC用于you Gen垃圾收集

如果我只将CMS作为单个参数传递,
-XX:+UseConMarkSweepGC
CMS用于年轻一代和老一代的垃圾收集吗?

我认为
UseParNewGC
仍然用于young gen,尽管它还没有与CMS一起配置。但我想证实这个假设

我说得对吗


编辑:我正在使用JDK1.7版本。如果行为在1.7和1.8中不同,请解释。

在询问gc问题时,您应该说明您想了解的jdk版本,因为实际组合因版本而异。 但是,CMS只适用于终身制的一代,而不适用于年轻一代。 将使用并联新发电机扫气

我认为UseParNewGC仍然用于young gen,尽管它尚未与CMS一起配置。但我想证实这个假设

通过将
-XX:+PrintFlagsFinal
附加到命令行,始终可以确定有效标志


这将允许您确定更改标志A是否会影响标志B。

您指的是哪个JVM实现和版本?jdk版本的更新问题我已经添加了上述标志,但我没有得到执行哪个算法的任何具体证据-[并行时间:168.2 ms,GC工作程序:23][GC工作程序启动(ms):Min:82247.9,Avg:82254.2,Max:82256.4,Diff:8.5][Ext Root扫描(ms):Min:17.4,Avg:21.7,Max:27.6,Diff:10.2,Sum:498.2][Update RS(ms):Min:0.0,Avg:0.7,Max:4,Diff:4.4,Sum:15.1][处理的缓冲区:Min:0,Avg:4.8,Max:30,Diff:30,Sum:110][Scan-RS(ms):Min:0.2,Avg:0.4,Max:1.5,Diff:1.3,Sum:9.1]区分
java-XX:+useConMarkSweepGC-XX:+PrintFlagsFinal
java-XX:+PrintFlagsFinal