4

小さなアプリケーションの実行の特定の部分をプロファイルしたいと思います。プロファイリングされるアプリケーション内からVisualVMでデータ収集をトリガーする方法はありますか?つまり、プロファイルされたアプリケーションにコードを追加して、このコードがヒットするとVisualVMのプロファイリングが自動的に開始されるようにすることは可能ですか?

meaninglessCode();

// How to start data collection?
com.sun.tools.visualvm.....startSampling();
//

codeToBeProfiled();

// How to stop data collection?
com.sun.tools.visualvm.....stopSampling();
//

furtherMeaninglessCode();

私の現在の回避策はThread.sleep、VisualVM GUIのボタンを押す時間を与える呼び出しですが、これは決して満足のいくものではありません。いくつかのGoogle検索は成功を示しませんでした。ヒントをいただければ幸いです。

4

1 に答える 1

1

このブログエントリで説明されているように、2つのVisualVM設定を使用してプロファイリングセッションをカスタマイズできます。

  • ルートのプロファイリング:次を含むクラスを配置しますcodeToBeProfiled()
  • インストルメンテーションフィルター:独自に定義するか、デフォルト値のままにします

このように、VisualVMは、を含むクラスのメソッドcodeToBeProfiled()が実行されたときにプロファイリングを開始します。

于 2012-08-13T13:40:00.280 に答える