Açık kaynak planlama ve zamanlama motoru OptaPlanner, resmi web sitesinde bir Java 11 GC performans karşılaştırma raporu yayınladı.
Şu anda Java'nın en yaygın kullanılan sürümü 8'dir, bu nedenle test uzmanları karşılaştırmalı testler için Java 8 ve Java 11 kullanır. GC, Java performansını etkileyen önemli bir faktördür, bu nedenle test doğal olarak GC'ye dayanmaktadır. Testler G1 GC ve paralel GC altında gerçekleştirilmiştir. Sonuçlar aşağıdaki gibidir:
Java 8 ve Java 11
G1 GC kullanın
G1 GC altında saniye başına dakika:
Java 11, neredeyse tüm test veri kümelerinde hız iyileştirmelerine sahiptir. Ortalama olarak, yalnızca Java 11'e geçildiğinde% 16'lık bir iyileşme olmuştur. Bu gelişme, Java 10'da JEP 307: G1 için Paralel Tam GC'nin kullanılmasından kaynaklanıyor olabilir.
Paralel GC kullan
Paralel GC altında saniye başına dakika:
Paralel GC kullanıldığında, sonuç G1 kadar iyi değildir, bazı veri kümeleri gelişmiştir, ancak diğer veri kümeleri değişmeden kalır ve hatta performans düşüşü yaşanır. Ortalama olarak, Java 11'in performansı% 4'ten fazla artmıştır.
Test cihazı, Java 11'de paralel GC ve G1 GC'yi de karşılaştırdı:
Java 11'de Paralel GC ve G1 GC
Sonuçlar, G1 GC'nin genel olarak paralel GC kadar iyi olmadığını göstermektedir.
OptaPlanner, Java 8'den Java 11'e G1 GC'nin ortalama hız iyileştirmesinin% 16,1 ve paralel GC'nin% 4,5 olduğunu söyledi.
Aynı zamanda, paralel GC'nin iş hacmi odaklı olmasına ve G1'in düşük gecikmeli GC'ye odaklanmasına rağmen, Java 11'in getirdiği G1'deki önemli iyileştirmeler, ikisini doğrudan karşılaştırmayı anlamlı kılar.
Buna ek olarak, kıyaslama testindeki veri setlerinin çoğuna bağlı olarak paralel GC, OptaPlanner için hala daha uygundur, çünkü OptaPlanner'ın optimizasyon sorunlarını çözmek için verimlilik daha önemlidir.