私はかなりメモリを消費するJavaアプリケーションを持っています。Windows XP Professional を搭載した私の 32 ビット システムでは、アプリケーションを指定すると問題なく動作します-Xmx1280m
。以下のすべてがjava.lang.OutOfMemoryError: Java heap space
例外になります。
-Xms1400m
同じアプリケーションを 64 ビットの Windows XP Professional で実行すると (他はまったく同じ) 、OutOfMemory 状態を防ぐ必要があります。
私の理解では、C プログラムがあり、それを 32 ビット用にコンパイルし、64 ビット用にコンパイルすると、64 ビット バージョンではポインタがより広くなるため、より多くのメモリが必要になります。ただし、私の Java の例では、仮想マシン (Sun) は同じで、バイトコードも同じです。
64 ビット マシンでより多くのメモリが必要なのはなぜですか?