84

HotSpot JVM フラグは何-XX:+UseCompressedOopsを行い、いつ使用する必要がありますか? 64 ビット Java インスタンスで使用すると (使用しない場合と比べて)、どのようなパフォーマンスとメモリ使用量の違いが見られますか?

4

1 に答える 1

91

昨年のほとんどの 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 ビット参照を使用し、引き続き使用します。

于 2012-06-15T16:37:20.810 に答える