4

次のクラスを作成し、コマンド「java-Xms500mClass1」を使用して15台の端末で実行しました。

私はそれが4つか5つの別々の実行の後で私を許さないことを期待していました。これ以上JVMを作成できないようなものを期待していましたが、すべてのプログラムが実行されています。各JVM作成に500Mbの初期ヒープメモリ(私のRAMは2GB)が必要な場合、JVM作成の最大制限は4にする必要があります。

public class Class1
{
public static void main(String[] args)
{
  int i=0;
  while(true)
   {
    try
   {
    Thread.currentThread().sleep(100);
    System.out.println("hi-"+i);
   }
   catch (InterruptedException e)
   {
   }
   i++;
   if(i == 1000000)
   {
    break;
   }
 }
}

ありがとう、アマレシュ

4

3 に答える 3

4

-Xmx最大ヒープ サイズ、-Xms初期ヒープ サイズです。ヒープ サイズを正しく設定する方法については、こちらを参照してください。

于 2012-05-18T06:55:24.483 に答える
2

仮想メモリにより、物理メモリよりも大きな累積ヒープ サイズを持つ JVM を作成できます。

Unix と Windows の両方で、ハード ドライブがメモリとして使用されるため、4GB + sizeof(メモリとして使用するために割り当てられたハード ドライブ領域) の JVM を作成できます。したがって、4GB の RAM があり、2G のハード ドライブをメモリとして使用するように割り当てた場合、java -Xmx500 -Xms500 を使用して 12 個の JVM を作成できます。

Linux では、スワップ領域はメモリとして使用されます。Windows では、メモリとして使用するディスクの量を次の場所で構成できます。System Properties->Advanced->Performance->Settings

于 2012-05-18T08:15:25.430 に答える
1

こちらも使っ-Xms500mてみてください。これにより、初期メモリが設定されます。

「最大」メモリを設定していましたが、コードはあまりメモリを使用していません。

お使いの OS にはおそらく仮想メモリも搭載されているため、2GB を少し超えることになります。

500mまた、はヒープ サイズであることも覚えておいてください。実際の JVM は、ヒープだけよりも少し多くのメモリを必要とします。

于 2012-05-18T06:56:43.953 に答える