19 Ocak 2024 Cuma

JEP-401 - Project Valhalla - Improve Java’s Memory Efficiency

Giriş
Java'nın kullandığı Memory Model özellikle Integer[] gibi yapılarda işlemcinin israf edilmesine sebep oluyor. Bunu gösteren bir şekil burada

Sebebi ise şöyle
Accessing the value of an Integer (non-primitive) includes an extra memory access
Çünkü her bir Integer için kullanılan Metadata nesnesi bellekte rastgele bir yerde duruyor
Bu da günümüzdeki modern işlemcilerde CPU cache israfına sebep oluyor

Project Valhalla
İlk fikir 2014 yılında ortaya atıldı. Açıklaması şöyle
... give the user the ability to flatten his objects and enjoy the performance of primitives in exchange for some limitations ...
Kod olarak şöyle
// Before
public class Point {
  private final int x;
  private final int y;
}

// After
public primitive class Point {
  private final int x;
  private final int y;
}



Hiç yorum yok:

Yorum Gönder