2013-02-07 29 views
0

如何配置用C編寫的Java本地接口庫?如何配置本機JNI庫

我知道通常的C廓線儀,但我的問題是我怎麼能輪廓整個組,將調用到JVM方法可能有所放緩程序。

+0

什麼平臺的操作系統?如果您可以在OS-X或Solaris上運行,dtrace可以提供集成視圖,跨JVM,OS用戶空間和內核進行性能分析。 –

+0

目前GNU/Linux。還要指定我正在談論CPU的性能。不是內存問題。 – mcieec

+0

dtrace不是內存分析器,如果這就是您評論的後半部分所針對的內容。 –

回答

3

經過一些研究和測試與一些在這裏提出的方法後,我最終使用sprof

基本上我遵循in this answer的說明。一些評論:

  1. 我不得不離開LD_PROFILE_OUTPUT空,以獲得結果/var/tmp/,否則不生成的輸出文件。
  2. 我分配LD_PROFILE=libXXXX.so

爲了讓我跑它加載的Java代碼的配置文件,並使用原生JNI庫,我得到了一個文件的分析結果:

/var/tmp/libXXXX.so.profile

一旦您可以使用以下命令閱讀文件:

sprof /path/to/libXXXX.so /var/tmp/libXXXX.so.profile

分析的結果與gprof的模板相同。 Here你可以找到對內容及其含義的描述。

+0

嘿,我可以問你這個嗎?你是從導出所有變量的命令行運行javacode還是從eclipse運行? –

+0

我遇到'ld.so檢測到的不一致:dl-open.c:717:_dl_open:斷言'_dl_debug_initialize(0,args.nsid) - > r_state == RT_CONSISTENT'失敗! –