HotSpot JVM bayrağı -XX:+UseCompressedOops
ne işe yarar ve ne zaman kullanmalıyım? 64 bit Java örneğinde kullanırken (kullanmama ile karşılaştırıldığında) ne tür performans ve bellek kullanım farklılıkları göreceğim?
HotSpot JVM bayrağı -XX:+UseCompressedOops
ne işe yarar ve ne zaman kullanmalıyım? 64 bit Java örneğinde kullanırken (kullanmama ile karşılaştırıldığında) ne tür performans ve bellek kullanım farklılıkları göreceğim?
Yanıtlar:
Geçen yılki çoğu HotSpot JVM, varsayılan olarak etkinleştirdi. Bu seçenek, referansların 64 bitlik bir JVM'de 32 bit olmasına ve 32 GB'ye yakın yığın erişimine izin verir. (32 bitlik işaretçilerden daha fazlasını yapabilir) (Sınırsız sayıda yığın belleğe de sahip olabilirsiniz). Bu, önemli miktarda bellek tasarrufu sağlayabilir ve performansı potansiyel olarak artırabilir.
Bu seçeneği kullanmak istiyorsanız, daha önce neden etkinleştirilmemiş olması gibi hatalar gibi iyi bir neden olabileceğinden, varsayılan olarak açık olan bir sürüme güncellemenizi öneririm. Java 6 güncelleme 23 veya Java 7 güncelleme 5'i deneyin.
Kısacası, açmayın, varsayılan olarak açık olan bir sürümü kullanın.
Güncelleme:
Java 8'de ayarlama seçeneğiniz vardır -XX:ObjectAlignmentInBytes=
ve aslında yığın boyutunu 64 GB'a ayarlarsanız, -XX:ObjectAlignmentInBytes=16
32 bitlik referansları kullanır ve yine de kullanır.
JE cache
Bunun nedeni, herhangi bir nedenle kompres kullanıp kullanmadığınızı çözememesidir . Size bu btw'yi anlatabilecek birkaç yöntem düşünebilirim. JVM'nin etkin değilse başarısız olmasını istemiyorsanız, IMHO komut satırında belirtmeniz gerekmez. örneğin Java 8'de 64 GB'lık bir yığınınız var.