如何分析用 C 编写的 Java 本机接口库?
我了解常用的 C 分析器,但我的问题是如何分析whole设置包括对 JVM 方法的调用,这可能会减慢程序速度。
经过对这里提出的一些方法的一些研究和测试后,我最终使用了sprof
.
基本上我遵循了可用的说明在这个答案中 https://stackoverflow.com/a/4959168/838642。一些评论:
- 我不得不离开
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
. Here http://www.cs.utah.edu/dept/old/texinfo/as/gprof_toc.html您可以找到内容及其含义的描述。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)