2

如何分析用 C 编写的 Java 本机接口库?

我知道常用的 C 分析器,但我的问题是如何分析整个集合,包括对 JVM 方法的调用,这可能会减慢程序的速度。

4

1 回答 1

5

在对这里提出的一些方法进行一些研究和测试后,我最终使用了sprof.

基本上我遵循了这个答案中的说明。一些评论:

  1. 我必须LD_PROFILE_OUTPUT留空才能得到结果/var/tmp/,否则不会生成输出文件。
  2. 我分配LD_PROFILE=libXXXX.so

为了获取配置文件,我运行了加载和使用本机 JNI 库的 Java 代码,我得到了一个包含分析结果的文件:

/var/tmp/libXXXX.so.profile

获得文件后,您可以使用以下命令读取它:

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

分析的结果遵循与 相同的模板gprof在这里您可以找到对内容及其含义的描述。

于 2013-02-11T10:59:56.227 回答