开源规划调节引擎 OptaPlanner 官方网站发表了多个 Java 11 GC
质量基准测验报告。

编者按:

即使Java 13在旅途了,但从Java 9 到Java
12有又多上业夫职员已经用上了吧?

除此以外,关于收取金钱的哗然,首假诺照准厂商和需求商业服务协助的须求,那对软件开垦者来讲,该怎么学还怎么学,该上新版了还得上。

此地就依附四个短期支撑版的java来总结相比一下,看看能或无法吸引你到新赛道上^_^

那篇小说无独有偶接上前几年大家做的一遍具体条件下差别GC算法品质相比的试验。此次大家照例进行相符的考察,不过扩充了对G1回笼器的测量检验,而且在八个阳台展开测量试验。二〇一两年大家测量试验的垃圾回笼器犹如下多少个:

澳门新葡萄京所有网站 1

澳门新葡萄京所有网站 2

-XX:+UseParallelOldGC

当前使用量最大的 Java 版本是 8,所以测量试验者用 Java 8 与 Java 11
举办对照测验。GC 是影响 Java 品质的关键因素,所以测量检验自然也依照 GC,在
G1 GC 和相互 GC 下分别实行了测量试验,结果如下:

作者丨h4cd

oschina.net/news/103704/how-much-faster-is-java-11

-XX:+UseConcMarkSweepGC

Java 8 vs. Java 11

开源规划调解引擎 OptaPlanner 官方网站公布了一个 Java 11 GC
质量基准测量试验报告。

-XX:+UseG1GC

使用 G1 GC

现阶段使用量最大的 Java 版本是 8,所以测量试验者用 Java 8 与 Java 11
实行对照测量检验。GC 是震慑 Java 质量的关键因素,所以测量检验自然也依据 GC,在
G1 GC 和相互 GC 下分别开展了测验,结果如下:

运行条件

澳门新葡萄京所有网站 3

Java 8 vs. Java 11

咱俩接受现存的JIRA职分来运作那么些测量试验。选取它的来由非常轻易——除去Minecraft(一款门到户说网络电游),愤怒的鸟儿,以致Eclipse不说,
JIRA应该是最有名的Java应用程序了。而且和其余候选者相比较,它更能表示大家平常的事体管理流程——毕竟来讲Java用得最多之处或许在服务端的Java公司级应用。

G1 GC 下每秒分值:

使用 G1 GC

潜移默化大家决定的还会有一个要素—— Atlassian的技术员们发表了三个打包好的JIRA压测脚本
。大家能够直接用它来进展大家的尺码测量试验。

澳门新葡萄京所有网站 4

澳门新葡萄京所有网站 5

咱俩紧密的将新型版的JIRA6.1解压,然后把它安装到Mac OS X
Mavericks上。最后直接运用私下认可的内存参数设置来运维这一个测验程序。Atlassian团队的钱物已经帮我们把参数也设置好了:

Java 11 在差不离全体育项目检查测试试数据集上都有速度上的升官。平均来讲,仅通过切换成Java 11 就有 16% 的精耕细作,这种改革只怕是因为 Java 10 中引进了 JEP 307:
Parallel Full GC for G1。

G1 GC 下每秒分值:

-Xms256m -Xmx768m -XX:MaxPermSize=256m

应用并行 GC

澳门新葡萄京所有网站 6

那几个顺序接收了JIRA的见惯不惊的两种不一样功效——成立职务,分配职分,分析职责,查找及开采义务,等等。总的运营时刻是30分钟。

澳门新葡萄京所有网站 7

Java 11 在大致全部测量检验数据集上都有速度上的升官。平均来讲,仅透过切换成Java 11 就有 16% 的精雕细琢,这种修正恐怕是因为 Java 10 中引进了 JEP 307:
Parallel Full GC for G1。

我们运用了二种不相同的GC算法来运维那么些测量试验——Parallel,CMS,
和G1。每一次测验都再度开动叁个新的JVM实例,并预先把仓库储存复苏到同一之处。一切计划妥善后我们才初叶起步压测。

互相 GC 下每秒分值:

使用并行 GC

结果

澳门新葡萄京所有网站 8

澳门新葡萄京所有网站 9

老是测量检验大家都因而-XX:+PrintGCTimeStamps -Xloggc:/tmp/gc.log
-XX:+PrintGCDetails来收罗GC日志,最终动用GCViewer来分析内部的数量。

应用并行 GC,结果不如G1,有些数据集上有所纠正,但任何数据集保持不改变以致现身品质裁减。平均来说,Java
11 的习性提高了 4% 以上。

相互之间 GC 下每秒分值:

汇中国人民解放军总后勤部的结果如下。注意测验结果的单位是飞秒。

测验者还在 Java 11 上对相互 GC 与 G1 GC 进行对照:

澳门新葡萄京所有网站 10

年ParallelCMSG1

Java 11 上并行 GC vs. G1 GC

选拔并行 GC,结果不如G1,某个数据集上有所改良,但别的数据集保持不改变以致现身品质收缩。平均来说,Java
11 的质量升高了 4% 以上。

Total GC pauses20 93018 87062 000

澳门新葡萄京所有网站 11

测试者还在 Java 11 上对互相 GC 与 G1 GC 举办比较:

Max GC pause7216450

结果声明 G1 GC 全体上不及并行 GC。

Java 11 上并行 GC vs. G1 GC

说明

OptaPlanner 代表,从 Java 8 到 Java 11,G1 GC 的平均速度改进为
16.1%,并行 GC 为 4.5%。别的就算并行 GC 面向吞吐量,而 G1
则尊重于低延迟 GC,但是 Java 11 中拉动的 G1
显著改良,使得将多头实行间接相比较是有含义的。其他,基于基准测验中的大繁多多少集来看,并行
GC 照旧更适合 OptaPlanner 的,因为吞吐量对于消除 OptaPlanner
的优化难题更为主要。

澳门新葡萄京所有网站 12

首先来看Parallel GC
(-XX:+UseParallelOldGC卡塔尔国。在此30分钟的测量试验进度中,并行搜集器的GC大致暂停了有21秒。最长的一遍花了721飞秒。我们来以那几个做为基准:从总的运营时刻来看,GC周期回退了1.1%的吞吐量。最长的延迟时间大约是721纳秒。

详细测量检验基准与经过查看最早的文章:

结果注解 G1 GC 全体上不比并行 GC。

下三个:CMS(-XX:+UseConcMarkSweepGC)。在30分钟的测验中,由于GC而损失的光阴是19秒。吞吐量和上一次的并行方式下的好些个。但是时延方面有了分明的精雕细刻——最坏的情状下的时延收缩了10倍!现在最大的GC暂停时间唯有64飞秒。

OptaPlanner 代表,从 Java 8 到 Java 11,G1 GC 的平均速度修改为
16.1%,并行 GC 为 4.5%。

最后贰次测量试验用的是流行最潮的GC算法——GC(-XX:+UseG1GC)。运维的是相仿的测量试验程序,可是结果的吞吐量则严重消沉了。这一次测量试验应用在GC上开销的光阴超越了一分钟。和CMS独有1%的开辟比较,这一次的吞吐量下落了有3.5%。可是就算你不留意吞吐量而更留意时延的话——那上面它和眼下展现最棒的CMS相比较还会有六成的进级——G1回笼器最长的中止时间唯有50ms。

(文/开源中夏族民共和国卡塔尔国    

与此同不平时候固然并行 GC 面向吞吐量,而 G1 则尊重于低延迟 GC,但是 Java 11中带动的 G1 显明改良,使得将六头举办直接相比是有含义的。

结论

别的,基于基准测量试验中的大好多数量集来看,并行 GC 依然更合乎 OptaPlanner
的,因为吞吐量对于缓慢解决 OptaPlanner 的优化难题更为主要。

想经过如此一遍试验来得出三个结论是老大危殆的。假如您的时日丰富又有相应的技术的话——你应当在温馨的情状中具体情状具体解析,并非运用一刀切的主意。

不过假若说非要得出一个定论,笔者感觉说CMS仍为精品的暗许选项。G1的吞吐量实乃太差,和它所减弱的这一点时延相比并不划算。

http://ju.outofmemory.cn/entry/72727