8

特定のランタイム条件が満たされたときに、Java アプリケーションを選択的に監視/プロファイルしようとしています。HotSpotDiagnosticMXBeanを使用して、オンザフライでヒープをダンプできます。これは非常に便利です。

私は現在、特定のコード パスをより効果的に対象とすることを期待して、CPU プロファイリングで同様のことをしようとしています。コマンドラインHPROF インターフェースと NetBeans プロファイラーの経験はありますが、どちらも事前に開始する必要があります。

実行中のアプリケーション内からプログラムで HPROF プロファイラーをアクティブにする方法はありますか? できれば、プロファイリングプロセスを自由に開始および停止できるようにするものはありますか?

4

1 に答える 1

1

JVMTI のドキュメントによると、hprof などのネイティブ エージェント ライブラリは、バイトコードが実行される前に、JVM の初期化の非常に早い段階でロードする必要があります。いいえ、これをオンザフライで行うことはできません。

別の方法として、main 関数内で変更された JVM パラメータを使用して Java プロセスを再起動することもできますが、これは簡単なことではありません。

于 2012-07-22T10:52:23.250 に答える