HotSpot JVMのフラグ-XX:+UseCompressedOops
いつ使うべきですか? 64ビットJavaインスタンス(使用しない場合)で使用する場合、どのようなパフォーマンスとメモリ使用量の違いが見られますか?
昨年のほとんどのHotSpot JVMは、デフォルトでオンになっています。このオプションにより、参照は64ビットJVMで32ビットになり、32 GB近くのヒープにアクセスできます。 (32ビットポインターを超えることができます)(ほぼ無制限のオフヒープメモリも使用できます)。これにより、メモリを大幅に節約でき、パフォーマンスが向上する可能性があります。
このオプションを使用する場合は、バグ、以前は有効にされなかった理由などの正当な理由がある可能性があるため、デフォルトでオンになっているバージョンに更新することをお勧めします。 Java 6 update 23またはJava 7 update 5。
要するに、オンにしないで、デフォルトでオンになっているバージョンを使用してください。
更新:
Java 8では、-XX:ObjectAlignmentInBytes=
そして実際には、ヒープサイズを64 GBにすると、-XX:ObjectAlignmentInBytes=16
および32ビット参照を引き続き使用します。