web-dev-qa-db-ja.com

Javaでヒープサイズを増やす

私は8 GBのRAMを搭載したWindows 2003サーバー(64ビット)で作業しています。ヒープメモリの最大容量を増やすにはどうすればよいですか?ヒープサイズを1500 MBに増やすために-Xmx1500mフラグを使用しています。ヒープメモリを物理メモリの75%(6 GBヒープ)に増やすことはできますか?

255
Sunil

32ビットシステムでは4GBまで増やすことができます。あなたが64ビットシステムを使っているなら、あなたはもっと上に行くことができます。 32ビットシステムで5gを要求しても、間違った値を選択しても心配する必要はありません。Javaは無効な値について不平を言って終了します。

他の人が投稿したように、cmd-lineフラグを使用してください。

Java -Xmx6g myprogram

Java -Xと入力すると、完全なリスト(またはほぼ完全なリスト)が表示されます。

304
Steve B.

コマンドラインオプションを使用することで、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に設定できます。

148
Karthik Reddy

32ビットJVMでは、理論的に設定できる最大ヒープサイズは4 GBです。より大きなヒープサイズを使用するには、64ビットJVMを使用する必要があります。以下を試してください。

Java -Xmx6144M -d64

JVMが64ビットモードで動作するように指示するため、-d64フラグは重要です。

26
Kevin

EclipseのJVMによって直接割り当てられるヒープサイズを直接増やすことは可能です。Eclipse [IDE goto

実行---->実行構成---->引数

-Xmx1gと入力します(Xmx256mまたはXmx1gのように最大サイズを設定するために使用されます...... m - > mb g ---> gb)

11
Karthik Reddy

Java -d64 -Xms512m -Xmx4g HelloWorld

-d64:64ビットJVMを有効にします。-Xms512m:初期ヒープサイズを512 MBに設定します。-Xmx4g:最大ヒープサイズを4 GBに設定します(ここでのJavaファイル名はHelloWorld.Javaです)。

10
Sumit Deshinge

ヒープメモリを物理メモリの75%に増やすことはできますか(6GBヒープ)。

はい、できます。実際には、必要に応じて、物理メモリの量よりも増やすことができます。

これを実行するのが良い考えであるかどうかはあなたのシステムで他にどれだけ実行されているかに依存します。特に、現在実行中のアプリケーションやサービスの「ワーキングセット」が使用可能な物理メモリを大幅に超えると、システムが「スラッシュ」し、仮想メモリページをディスクとの間で移動するのに時間がかかります。正味の効果は、システムがひどく遅くなることです。

7
Stephen C

以下のように、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 (この比率で遊んで、希望の比率にすることができます)。

3
Sahil Chhabra

これは64ビット版のJavaでのみ動作します。コントロールパネルに行き、Javaアイコンをクリックしてください。 Javaコントロールパネルの小さなウィンドウで、Javaメニューバーをクリックしてからviewボタンをクリックします。

Javaプラットフォームが2つある場合は、前のバージョンのJavaを無効にしてから、 ランタイムパラメータ textフィールドをクリックし、-Xmx1024m以下またはRAM size以下と入力します。ヒープサイズをRAMに等しくしないでください。システムがクラッシュします。

2
madhu

ヒープサイズを6GBに変更するには、以下のコマンドを使用してください。

export Java_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
2
user7389761

何人かの人々がjvmオプションの-Xms-Xmsを使ってヒープサイズの具体的な答えを指摘しました。これがjvmのメモリオプションの唯一の種類ではないことを指摘したいと思います。具体的には、フローのスタックになっている場合は、-Xss8mのような追加オプションを追加してスタックのサイズを増やすことをお勧めします。

この問題では、-Xms2g -Xmx6g -Xss8mのようなjvmオプションが解決策になります。

私のGoogleがjvmメモリを増やす方法についての調査でこの解決策を私に導いたので、私はこの情報を共有しています、そして、解決策は大量のメモリ割り当てでうまくいきませんでした。特定の設定が何のためのものであるかを理解すると、私はGoogleでスタックサイズを増やす方法を見つけることができ、不足しているパラメータを見つけました。 :)これが他の時間を節約することを願っています。 :)

1
James Oravec

はい。あなたはできる。

ヒープメモリを物理メモリの75%(6 GBヒープ)以上に増やすことができます。

あなたは64bitを使用しているので、あなたはあなたの望む量にあなたのヒープサイズを増やすことができます。 32ビットを使用している場合は4GBに制限されています。

$ Java -Xms512m -Xmx6144m JavaApplication

初期ヒープサイズを512MBに、最大ヒープサイズを6GBに設定します。

それが役に立てば幸い.. :)

0
Sarat Chandra