2

jvm の xmx を 4 G に設定しましたが、しばらく実行した後、top を使用してメモリを表示すると、プロセスが 12 G のメモリを使用したことが示されます。

では、xmx は実際には何を意味するのでしょうか。jvm メモリを 4 G に制限したい場合はどうすればよいですか?

コマンド ライン: -server -Xms4g -Xmx4g

そして別の関連する質問:)

gc が発生した場合、若い世代で使用されなくなったオブジェクトのスペースは、必然的に JVM によって解放されますか? またはそれらのいくつかは次の gc に残されましたか?

ありがとう

4

1 に答える 1

7

JVM の -Xmx オプションは、maximum size of the Java garbage collected heap. JVM が使用するメモリのサイズは制限されません。ps または top によって報告されるプロセスのサイズには、それに加えて、プロセスによって使用されるその他のメモリが含まれます。以下は、ガベージ コレクション ヒープの一部ではないが、プロセスが必要とするメモリの一部であるものの例です。

  • JVM を実装するコード
  • JVM を実装するデータ構造の C マニュアル ヒープ
  • システム内のすべてのスレッドのスタック (アプリ + JVM)
  • キャッシュされた Java バイトコード (ライブラリとアプリケーション用)
  • JIT されたマシン コード (ライブラリとアプリケーション用)
  • ロードされたすべてのクラスの静的変数
于 2012-08-12T14:06:05.813 に答える