go比java快多少_Java 11快多少?
go比java快多少
盡管大多數(shù)開發(fā)人員仍然使用Java 8 ,但Java 11還是在不久前發(fā)布的。 讓我們看看其中哪個對OptaPlanner更快。 找出答案的最佳方法當(dāng)然是運(yùn)行OptaPlanner基準(zhǔn)測試。 本文是我們針對Java 8的類似文章的后續(xù)文章 。
基準(zhǔn)方法
為了運(yùn)行基準(zhǔn)測試,我們使用了:
- 運(yùn)行RHEL 6,運(yùn)行2 x Intel? Xeon? CPU E5-2609 0 @ 2.4 GHz (8 cores total)和31.3 GiB RAM內(nèi)存的穩(wěn)定機(jī)器,無需運(yùn)行任何其他計算要求高的進(jìn)程。
- 兩種Java版本的G1和Parallel GC都比較了垃圾回收的影響。 Java分別使用-Xmx1536M -server -XX:+UseG1GC和-Xmx1536M -server -XX:+UseParallelGC 。
- 兩種Oracle Java 8:
和OpenJDK 11:
openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)- OptaPlanner 7.14.0.Final
- 解決計劃問題不涉及任何IO (啟動期間要加載輸入的幾毫秒除外)。 一個CPU完全飽和。 它會不斷創(chuàng)建許多短命的對象,然后GC會收集它們。
- 每次運(yùn)行都可以使用OptaPlanner解決11個計劃問題。 每個計劃問題將運(yùn)行5分鐘,并以30秒的JVM預(yù)熱開始,該預(yù)熱將被丟棄。
- 基準(zhǔn)衡量每毫秒計算的分?jǐn)?shù)數(shù)。 越高越好。 為提議的規(guī)劃解決方案計算分?jǐn)?shù)并非易事:涉及許多計算,包括檢查每個實體與每個其他實體之間的沖突。
執(zhí)行摘要
使用Java 11,G1的平均改進(jìn)為16.1 % ,并行GC的平均改進(jìn)為4.5% 。 盡管并行GC面向吞吐量,而G1則側(cè)重于低延遲垃圾回收,但是Java 11中G1的重大改進(jìn)導(dǎo)致直接比較了這兩種垃圾回收算法 。 有關(guān)各種GC算法之間差異的更多信息,請參見本文 。
這表明并行GC仍然是OptaPlanner的首選GC,因為吞吐量對于解決OptaPlanner的優(yōu)化問題比由GC引入的延遲更為重要。
結(jié)果
Java 8和Java 11
| 云平衡 | 機(jī)器重新分配 | 課程安排 | 考試安排 | 護(hù)士名冊。 | 巡回賽 | ||||||
| JDK | 200度 | 800c | B1 | B10 | c7 | c8 | s2 | s3 | m1 | 1小時 | 14天 |
| Java 8 | 38,074 | 34,870 | 113,490 | 20,398 | 4,296 | 4,840 | 7,003 | 5,437 | 2,385 | 2,021 | 812 |
| OpenJDK 11 | 41,753 | 41,282 | 166,676 | 20,363 | 4,473 | 5,466 | 8,157 | 5,927 | 2,772 | 2,536 | 957年 |
| 區(qū)別 | 9.7% | 18.4% | 46.9% | -0.2% | 4.1% | 12.9% | 16.5% | 9.0% | 16.2% | 25.5% | 17.9% |
| 平均 | 16.1% |
使用G1垃圾收集器,幾乎所有數(shù)據(jù)集在Java 11上都優(yōu)于Java 8。 平均而言,僅切換到Java 11即可實現(xiàn)16%的改進(jìn)。對此改進(jìn)的可能解釋可能是Java 10中引入的JEP 307:用于G1的并行完整GC 。
| 云平衡 | 機(jī)器重新分配 | 課程安排 | 考試安排 | 護(hù)士名冊。 | 巡回賽 | ||||||
| JDK | 200度 | 800c | B1 | B10 | c7 | c8 | s2 | s3 | m1 | 1小時 | 14天 |
| Java 8 | 54,990 | 52,514 | 122,611 | 13,382 | 4,821 | 5,880 | 8,775 | 6,170 | 3,234 | 2,682 | 880 |
| OpenJDK 11 | 54,316 | 50,120 | 140,816 | 11,129 | 4,927 | 6,071 | 8,996 | 6,383 | 3,336 | 3,087 | 1,125 |
| 區(qū)別 | -1.2% | -4.6% | 14.8% | -16.8% | 2.2% | 3.2% | 2.5% | 3.5% | 3.2% | 15.1% | 27.8% |
| 平均 | 4.5% |
使用并行垃圾收集器,結(jié)果的確定性不及G1。 有些數(shù)據(jù)集有所改進(jìn),而另一些數(shù)據(jù)集則保持不變,甚至表現(xiàn)出性能下降。 但是,平均而言,Java 11的性能要高出4%以上。
Java 11上的并行GC與G1 GC
| 云平衡 | 機(jī)器重新分配 | 課程安排 | 考試安排 | 護(hù)士名冊。 | 巡回賽 | ||||||
| Java 11 | 200度 | 800c | B1 | B10 | c7 | c8 | s2 | s3 | m1 | 1小時 | 14天 |
| OpenJDK 11并行GC | 54,316 | 50,120 | 140,816 | 11,129 | 4,927 | 6,071 | 8,996 | 6,383 | 3,336 | 3,087 | 1,125 |
| OpenJDK 11 G1 GC | 41,753 | 41,282 | 166,676 | 20,363 | 4,473 | 5,466 | 8,157 | 5,927 | 2,772 | 2,536 | 957年 |
| 區(qū)別 | -23.1% | -17.6% | 18.4% | 83.0% | -9.2% | -10.0% | -9.3% | -7.1% | -16.9% | -17.8% | -14.9% |
| 平均 | -2.3% |
盡管與并行GC相比,G1 GC在Java 8方面顯示出明顯的改進(jìn),但對于大多數(shù)數(shù)據(jù)集而言,OptaPlanner的GC策略效益較低。 唯一的例外是機(jī)器重新分配,這表明G1 OptaPlanner能夠更快地計算分?jǐn)?shù)計算83%。 這也適用于Java 8,如使用G1 GC的“分?jǐn)?shù)計算每秒計數(shù)”所示。
結(jié)論
Java 11帶來了其他改進(jìn),這些改進(jìn)在不同的OptaPlanner示例和數(shù)據(jù)集之間有所不同。 平均而言,使用并行GC的速度要快4.5%,使用G1 GC的速度要快16.1%。 盡管G1 GC有了顯著改進(jìn),但在此基準(zhǔn)測試中,大多數(shù)數(shù)據(jù)集的并行GC仍然更快。
翻譯自: https://www.javacodegeeks.com/2019/01/how-much-faster-is-java-11.html
go比java快多少
總結(jié)
以上是生活随笔為你收集整理的go比java快多少_Java 11快多少?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么隐藏邮件ip(怎么隐藏邮件收件人)
- 下一篇: java堆内与堆外数据交互_Java:汇