3

を使用して定期的に JVM の統計を収集する必要があります。後で、JVM の使用可能なメモリ/空きメモリ、使用済みメモリ、合計メモリをログに記録する必要があります。

以下は、私が考えた2つのオプションです。

  1. ManagementFactory.getMemoryPoolMXBeans() を実行し、各 MemoryPoolMXBean を繰り返し処理し、最後に MemoryPoolMXBean.getUsage() を使用して統計を収集します。

  2. Runtime.freeMemory()、Runtime.maxMemory()、Runtime.totalMemory

これは、統計を収集するための最良の方法です。MemoryPoolMXBean.getUsage() またはランタイム クラスを使用します。

4

1 に答える 1

2

これは、アプリケーション内のさまざまな場所で情報を探すのではなく、アプリケーションのライフサイクル全体でメモリ使用量をリッスンすることです。

Javaでのメモリ通知 で述べたように、通知リスナーを .xml ファイルに追加できるため、インタラクティブなMemoryMXBean方法でメモリを監視できます。

そのため、時間厳守の非常にローカルなチェックにはランタイムで十分かもしれませんが、グローバルな監視にMemoryMXBeansはランタイムが適しています。

于 2009-05-12T12:11:03.587 に答える