-2

質問してすみません、もう少し検索する必要があります。

かなり大きなデータセットとメモリ集約型アルゴリズムを使用してwekaを実行しています。取得できないヒープスペースがすべて必要です。

これは機能します:

java -jar -Xmx2048m weka.jar &

しかし、これはしません

java -jar -Xmx4096m weka.jar &

私は得る:

Error occurred during initialization of VM Could not reserve enough 
space for object heap Could not create the Java virtual machine.

簡単に検索すると、これが上限であることがわかりました

java -jar -Xmx2594m weka.jar &

私は4GBのRAMを持っていますが、32ビットのマシンです。2 ^32バイト=4096MBのメモリを使用できないのはなぜですか?

将来的には、正しいハードウェアとOSがあれば、たとえば数百GBのヒープスペースでJavaを実行できるかどうか疑問に思っています。

1.6と1.7の両方のJVMをインストールしています。

$java -showversion
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
4

4 に答える 4

2

より多くのメモリを使用できる64ビットバージョンのJavaを使用してください。これは、32ビットJava仮想マシンの制限です。

于 2012-10-05T09:18:34.480 に答える
2

私は4GBのRAMを持っていますが、32ビットのマシンです。2 ^32バイト=4096MBのメモリを使用できないのはなぜですか?将来的には、正しいハードウェアとOSがあれば、たとえば数百GBのヒープスペースでJavaを実行できるかどうか疑問に思っています。

4 GBの場合、ヒープサイズの制限は1.2 GB(Windows XPの場合)まで小さくできるため、64ビットOSと場合によっては64ビットJVMを使用することをお勧めします。

より大きなJVMが必要な場合は、64ビットOSとJVMがあり、JVMのサイズよりも多くのメモリがあることを確認することをお勧めします。たとえば、40 GBのヒープが必要な場合は、48GBまたは64GBのメモリなどが必要です。

于 2012-10-05T09:22:17.423 に答える
2

4GBのRAMがある場合、JVMですべてが利用可能になるとどのように期待できますか?JVMが実行されているOSについてはどうでしょうか。これには、メモリも必要になります。それが機能する方法は、すべての4GBに対処できたとしても、一般的にOSはプロセスごとに利用可能な量を制限するということです。

于 2012-10-05T09:22:40.827 に答える
0

4096mの割り当てはできません。4096mの単一ブロックを取得しようとします。これは、どの時点でも不可能です。したがって、3000〜4000の小さな値を使用できます。または、RAMがどのプロセスでも使用されていないことを確認してください

于 2013-05-15T10:03:29.617 に答える