0

jvm は 4 バイトを使用して、参照ポイントを64 ビット envのオブジェクトに保存することがわかりました。

アプリケーションに 2^32 を超えるオブジェクトがある場合の対処方法がわかりません。

誰がこのケースを説明できますか?

4

2 に答える 2

5

32-bitJVM は32参照用にビットを使用しますが、64-bitJVM は参照用に使用できます64-bits

JVMでの参照数の制限である 2 32を使い果たす前に、(使用可能な RAM に関係なく、JVM でヒープを超えることはできません) を32-bit取得します。OutOfMemoryError2GB32-bit

では、格納するのに十分なメモリがあると仮定して、 2 3264-bit JVM個を超えるオブジェクトを作成できます。

一部の 64 ビット JVM は、パフォーマンスのために 32 ビット ポインター ( hotspot の CompressedOops フラグ) を使用する場合があることに注意してください。

于 2013-08-04T12:00:51.453 に答える
2

x64JVMを使用できます。8バイトを使用しています。

ただし、2 32 個4GBのオブジェクトがある場合、それぞれが最小 40 バイトです...とにかくメモリに収まりません。

于 2013-08-04T11:59:29.363 に答える