3つのJavaアプリケーションが同じマシンで実行されている場合、ヒープスペースがどのように割り当てられるか、誰か説明できますか?
各 JVM が個別のヒープ領域を割り当てるかどうか。それ以外の場合は、3 つのアプリケーションで共通になります。
前もって感謝します。
3つのJavaアプリケーションが同じマシンで実行されている場合、ヒープスペースがどのように割り当てられるか、誰か説明できますか?
各 JVM が個別のヒープ領域を割り当てるかどうか。それ以外の場合は、3 つのアプリケーションで共通になります。
前もって感謝します。
アプリケーションが新しいオブジェクトを作成すると、JVM はそれを格納するためにヒープ メモリの連続した領域をサブ割り当てします これを参照してください
各 JVM には独自の「ヒープ スペース」があります。これは、各 JVM がヒープに使用する独自の仮想アドレス空間を持っているという意味です。各 JVM から見ると、JVM だけがアクセスする独自のメモリ空間があります。
ただし、舞台裏では、もう少し複雑です。各 JVM のプライベート メモリ スペースは、オペレーティング システム カーネルの仮想メモリ システムによって作成された幻想です。実際には、コンピューター上で実行されているすべてのプログラムは、使用可能な (おそらく制限された) RAM を共有する必要があります。そのため、JVM は利用可能な RAM をめぐって競合しています。「ヒープ スペース」が RAM の一部であるという点で、ヒープ スペースは分離されていません。特に、1 つの JVM が大量のヒープ スペース (したがって大量の RAM) を使用する貪欲なアプリケーションを実行する場合、JVM の合計ワーキング セットが RAM を超えると、すべての JVM の速度が低下します。
OSはJVMに一定量のスペースを割り当てます...そのメモリをその下のさまざまなスレッド(プロセスとは言いたくない)に割り当てるのはJVMに任されています... Uはメモリの量を変更できますJVMの下の各スレッドに与えられますが、動作することは保証されていません..最終的にJVMの呼び出しです。メモリ サイズを増やすことは、JVM へのヒントにすぎません。つまり、「ブロ! このスレッドにはさらにメモリが必要です。割り当ててみてください」と伝えます。