JAVA String performansında büyük artış
(inside.java)Giriş
- JDK 25'te
String::hashCode, çoğu durumda constant folding ile işlenecek şekilde iyileştirildi. - Değişmez Map'lerde string anahtar tabanlı erişimde performans önemli ölçüde arttı.
Ana bölüm
Map<String, MethodHandle>yapısında anahtar araması statik olarak optimize ediliyor.- Dahili olarak
String.hashalanına@Stableuygulanıyor; hash değeri sabitlendiğinde JVM önbelleğe güveniyor. - Bunun sonucunda hash hesaplama, Map indeks hesaplama ve method handle araması tamamen derleme zamanında sabit olarak işleniyor.
- Benchmark sonuçları, mevcut JDK 24'e kıyasla performansın 8 kata kadar arttığını gösteriyor.
- Dezavantaj olarak, hashcode değeri 0 olduğunda constant folding uygulanmıyor (
""string'i dahil). - JEP 502 ile gelecekte benzer bir işlevin kullanıcı kodlarında da sunulması planlanıyor.
Sonuç
- JDK 25'teki
Stringoptimizasyonu, statik yapı temelli kodlarda etkili. @Stableşu an yalnızca dahili kullanım için olsa da ileride herkese açık bir özelliğe dönüşebilir.- En güncel JDK'ye geçildiğinde, string tabanlı Map işleme performansı önemli ölçüde iyileştirilebilir.
Henüz yorum yok.