jvm は 4 バイトを使用して、参照ポイントを64 ビット envのオブジェクトに保存することがわかりました。
アプリケーションに 2^32 を超えるオブジェクトがある場合の対処方法がわかりません。
誰がこのケースを説明できますか?
jvm は 4 バイトを使用して、参照ポイントを64 ビット envのオブジェクトに保存することがわかりました。
アプリケーションに 2^32 を超えるオブジェクトがある場合の対処方法がわかりません。
誰がこのケースを説明できますか?
32-bit
JVM は32
参照用にビットを使用しますが、64-bit
JVM は参照用に使用できます64-bits
。
JVMでの参照数の制限である 2 32を使い果たす前に、(使用可能な RAM に関係なく、JVM でヒープを超えることはできません) を32-bit
取得します。OutOfMemoryError
2GB
32-bit
では、格納するのに十分なメモリがあると仮定して、 2 3264-bit JVM
個を超えるオブジェクトを作成できます。
一部の 64 ビット JVM は、パフォーマンスのために 32 ビット ポインター ( hotspot の CompressedOops フラグ) を使用する場合があることに注意してください。
x64
JVMを使用できます。8
バイトを使用しています。
ただし、2 32 個4GB
のオブジェクトがある場合、それぞれが最小 40 バイトです...とにかくメモリに収まりません。