JVMTIを使用して実装するプロファイラーについて、すべてのJavaメソッドの実行時間の測定を開始したいと思います。JVMTIは次のイベントを提供します。
MethodEntry
MethodExit
したがって、これは実装が非常に簡単ですが、APIでこのメモに出くわしました。
メソッドの開始イベントまたは終了イベントを有効にすると、多くのプラットフォームでパフォーマンスが大幅に低下するため、パフォーマンスが重要な使用法(プロファイリングなど)についてはお勧めしません。このような場合は、バイトコードインストルメンテーションを使用する必要があります。
しかし、私のプロファイリングエージェントはヘッドレスで動作します。つまり、収集されたデータはシリアル化され、ソケットを介してサーバーアプリケーションに送信され、結果が表示されます。バイトコードインストルメンテーションを使用してこれをどのように実現する必要がありますか。ここから先に進む方法が少し混乱しています。戦略を切り替える必要がある場合、またはこの問題にどのように取り組むことができるか、誰かが私に説明してもらえますか?