C で記述された Java Native Interface ライブラリのプロファイルを作成するにはどうすればよいですか?
通常の C プロファイラーについては知っていますが、私の質問は、プログラムの速度を低下させている可能性のある JVM メソッドの呼び出しを含むセット全体をどのようにプロファイリングできるかということです。
C で記述された Java Native Interface ライブラリのプロファイルを作成するにはどうすればよいですか?
通常の C プロファイラーについては知っていますが、私の質問は、プログラムの速度を低下させている可能性のある JVM メソッドの呼び出しを含むセット全体をどのようにプロファイリングできるかということです。
ここで提案されている方法のいくつかを使用していくつかの調査とテストを行った後、最終的に を使用しsprof
ました。
基本的に、この回答で利用可能な指示に従いました。いくつかのコメント:
LD_PROFILE_OUTPUT
で結果を取得するには、空のままにしておく必要がありました/var/tmp/
。そうしないと、出力ファイルが生成されませんでした。LD_PROFILE=libXXXX.so
プロファイルを取得するために、ネイティブ JNI ライブラリをロードして使用する Java コードを実行し、プロファイル結果を含むファイルを取得しました。
/var/tmp/libXXXX.so.profile
ファイルを取得したら、次のコマンドを使用して読み取ることができます。
sprof /path/to/libXXXX.so /var/tmp/libXXXX.so.profile
プロファイリングの結果は、 と同じテンプレートに従いますgprof
。ここでは、内容とその意味について説明します。