如何分析用 C 编写的 Java native 接口(interface)库?
我了解常用的 C 分析器,但我的问题是如何分析整个集,包括对可能会减慢程序速度的 JVM 方法的调用.
最佳答案
经过对此处提出的一些方法进行一些研究和测试后,我最终使用了 sprof
。
基本上我遵循了可用的说明in this answer 。一些评论:
- 我必须将
LD_PROFILE_OUTPUT
留空才能在/var/tmp/
中获取结果,否则不会生成输出文件。 - 我分配了
LD_PROFILE=libXXXX.so
为了获取配置文件,我运行了加载并使用 native JNI 库的 Java 代码,并获得了一个包含分析结果的文件:
/var/tmp/libXXXX.so.profile
获得文件后,您可以使用以下命令读取它:
sprof/path/to/libXXXX.so/var/tmp/libXXXX.so.profile
分析结果遵循与 gprof
相同的模板。 Here您可以找到内容及其含义的描述。
关于java - 如何分析 native JNI 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14752459/