2011-02-02 17 views
1

私はすでに-Xmx2Gを使用しています。私はまだ進んでそれを増やすことはできますか?それは私が使用しているマシンに依存しますか?Javaヒープの上限

+1

64ビットOSがさらに必要な場合は、制限は2Gbです。 @dogbaneの答えをチェックしてください。 – vz0

答えて

6

4.1.2ヒープサイズのJava アプリケーションの最大ヒープ・サイズを3つの 要因によって制限される

:プロセスデータモデル (32ビットまたは64ビット)、および対応するオペレーティングシステムの制限である 仮想メモリの量は で利用可能で、物理量は ですシステム上で使用可能なメモリー。

特定 のアプリケーションのためのJavaヒープの サイズは超えることはできませんかさえ は、プロセスデータモデルの最大の仮想アドレス スペースに達します。 32ビットプロセスモデルの場合、 の仮想アドレスの最大サイズは (通常は4 GB)ですが、一部の操作では システムでは2 GBまたは3 GBに制限されています。 実際の制限は アプリケーションに依存しますが、最大ヒープサイズは通常、2GB制限では -Xmx3800m(1600m)です。

+0

しかし、いくつかのオペレーティングシステムはこれを2 GBまたは3 GBに制限しています。本当です。実際の制限をリストしたJVMバージョンとhwアーキテクチャと組み合わせて、OS +サービスパックのリストを見ることは興味深いでしょう。 –

0

なぜなら、別のヒープオプションを使用してJavaを実行して、それが文句を言うまで試してみませんか?もちろん、あなたのマシンが64kしか持っていないなら、それに依存していて、マルチギガバイトのモンスターと同じヒープ能力を持っているとは思いません! Java Tuning White Paperから

+0

私は今アクセスしていない別のマシンで私のプログラムを実行することになっているので、実験はできません – javanerd

関連する問題