私は8 GBのRAMを搭載したWindows 2003サーバー(64ビット)で作業しています。ヒープメモリの最大容量を増やすにはどうすればよいですか?ヒープサイズを1500 MBに増やすために-Xmx1500m
フラグを使用しています。ヒープメモリを物理メモリの75%(6 GBヒープ)に増やすことはできますか?
32ビットシステムでは4GBまで増やすことができます。あなたが64ビットシステムを使っているなら、あなたはもっと上に行くことができます。 32ビットシステムで5gを要求しても、間違った値を選択しても心配する必要はありません。Javaは無効な値について不平を言って終了します。
他の人が投稿したように、cmd-lineフラグを使用してください。
Java -Xmx6g myprogram
Java -Xと入力すると、完全なリスト(またはほぼ完全なリスト)が表示されます。
コマンドラインオプションを使用することで、JVMによって割り当てられるヒープサイズを増やすことができます。ここでは3つのオプションがあります。
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set Java thread stack size
Java -Xms16m -Xmx64m ClassName
上記の行で、最小ヒープを16MBに、最大ヒープを64MBに設定できます。
32ビットJVMでは、理論的に設定できる最大ヒープサイズは4 GBです。より大きなヒープサイズを使用するには、64ビットJVMを使用する必要があります。以下を試してください。
Java -Xmx6144M -d64
JVMが64ビットモードで動作するように指示するため、-d64フラグは重要です。
EclipseのJVMによって直接割り当てられるヒープサイズを直接増やすことは可能です。Eclipse [IDE goto
実行---->実行構成---->引数
-Xmx1gと入力します(Xmx256mまたはXmx1gのように最大サイズを設定するために使用されます...... m - > mb g ---> gb)
Java -d64 -Xms512m -Xmx4g HelloWorld
-d64:64ビットJVMを有効にします。-Xms512m:初期ヒープサイズを512 MBに設定します。-Xmx4g:最大ヒープサイズを4 GBに設定します(ここでのJavaファイル名はHelloWorld.Javaです)。
ヒープメモリを物理メモリの75%に増やすことはできますか(6GBヒープ)。
はい、できます。実際には、必要に応じて、物理メモリの量よりも増やすことができます。
これを実行するのが良い考えであるかどうかはあなたのシステムで他にどれだけ実行されているかに依存します。特に、現在実行中のアプリケーションやサービスの「ワーキングセット」が使用可能な物理メモリを大幅に超えると、システムが「スラッシュ」し、仮想メモリページをディスクとの間で移動するのに時間がかかります。正味の効果は、システムがひどく遅くなることです。
以下のように、JVMパラメータ -Xms および -Xmx を渡すことで、ヒープサイズを増やすことができます。
Jarファイルの場合
Java -jar -Xms4096M -Xmx6144M jarFilePath.jar
Javaファイルの場合
Java -Xms4096M -Xmx6144M ClassName
上記のパラメーターは、 InitialHeapSize(-Xms) を4GB(4096 MB)、および MaxHeapSize(-Xmx) を6GB(6144 MB)に増やします。
しかし、 若い世代 ヒープサイズは同じままで、追加のHeapSizeが 古い世代 ヒープサイズに追加されます。 Young Gen HeapとOld Gen Heap のサイズを等しくするには、 -XX:NewRatio = 1 -XX:-UseAdaptiveSizePolicy paramsを使用します。
Java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
-XX:NewRatio = Old Gen Heapサイズ:Young Gen HeapSize (この比率で遊んで、希望の比率にすることができます)。
これは64ビット版のJavaでのみ動作します。コントロールパネルに行き、Javaアイコンをクリックしてください。 Javaコントロールパネルの小さなウィンドウで、Javaメニューバーをクリックしてからview
ボタンをクリックします。
Javaプラットフォームが2つある場合は、前のバージョンのJavaを無効にしてから、 ランタイムパラメータ textフィールドをクリックし、-Xmx1024m
以下またはRAM size以下と入力します。ヒープサイズをRAMに等しくしないでください。システムがクラッシュします。
ヒープサイズを6GBに変更するには、以下のコマンドを使用してください。
export Java_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
何人かの人々がjvmオプションの-Xms
と-Xms
を使ってヒープサイズの具体的な答えを指摘しました。これがjvmのメモリオプションの唯一の種類ではないことを指摘したいと思います。具体的には、フローのスタックになっている場合は、-Xss8m
のような追加オプションを追加してスタックのサイズを増やすことをお勧めします。
この問題では、-Xms2g -Xmx6g -Xss8m
のようなjvmオプションが解決策になります。
私のGoogleがjvmメモリを増やす方法についての調査でこの解決策を私に導いたので、私はこの情報を共有しています、そして、解決策は大量のメモリ割り当てでうまくいきませんでした。特定の設定が何のためのものであるかを理解すると、私はGoogleでスタックサイズを増やす方法を見つけることができ、不足しているパラメータを見つけました。 :)これが他の時間を節約することを願っています。 :)
はい。あなたはできる。
ヒープメモリを物理メモリの75%(6 GBヒープ)以上に増やすことができます。
あなたは64bitを使用しているので、あなたはあなたの望む量にあなたのヒープサイズを増やすことができます。 32ビットを使用している場合は4GBに制限されています。
$ Java -Xms512m -Xmx6144m JavaApplication
初期ヒープサイズを512MBに、最大ヒープサイズを6GBに設定します。
それが役に立てば幸い.. :)