如何分析本机 JNI 库

2024-02-19

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

我了解常用的 C 分析器,但我的问题是如何分析whole设置包括对 JVM 方法的调用,这可能会减慢程序速度。


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

基本上我遵循了可用的说明在这个答案中 https://stackoverflow.com/a/4959168/838642。一些评论:

  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. Here http://www.cs.utah.edu/dept/old/texinfo/as/gprof_toc.html您可以找到内容及其含义的描述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何分析本机 JNI 库 的相关文章

随机推荐

  • MIT App Inventor 2:模拟器无法启动伴侣

    当我跑步时aiStarter exe以管理员身份 然后单击 连接到模拟器 http ai2 appinventor mit edu http ai2 appinventor mit edu 然后模拟器启动 显示带有 android 的黑屏
  • vscode“智能感知”和“转到定义”非 js/ts 文件

    在前端开发中 我们经常不仅在 javascript 中导入 javascript typescript 文件 我们使用别名和相对路径导入此类文件 Example import brandsQuery from graphql queries
  • 多个标签的Python正则表达式

    我想知道如何检索每个结果 p tag import re htmlText p p size 4 item1 p p size 4 item2 p p size 4 item3 p print re match
  • 使用 SQLite3 在 php 中创建新数据库

    如何使用 SQLite3 在 PHP 中创建新数据库 db new SQLite3 dbname 只是打开数据库 但我想创建 如果不存在 要创建你需要使用new陈述 create or open if exists the database
  • 在Rails中,为什么在没有运行bundle或bundle安装时会有一个新的Gemfile.lock? (还有一个新的 Gemfile 时间戳)

    很奇怪的是 突然间出现了一个新的Gemfile lock在我的文件夹中 即使我还没有运行bundle or bundle install or bundle update几天了 另外 我已经合并了所有更改并在 1 小时前提交并推送 所以这个
  • 如何忽略“firebase-admin 似乎已安装在不受支持的环境中。”?

    我正在使用 firebase 并正在为我的团队构建一个管理仪表板 仪表板用于向我们的平台添加所有用户都可以看到的内容 起初 我使用 Firebase JS SDK 实现它 并禁用安全规则来测试它 到目前为止一切正常 然后 我尝试使用适用于
  • 如何以编程方式枚举 Azure 订阅和租户?

    如何以编程方式枚举 Azure 订阅和租户 这与我之前的问题有关 NET Azure SDK 中的登录 AzureRmAccount 及相关 等效项 https stackoverflow com questions 44619481 lo
  • 非最大化 matlab GUI 图

    有没有办法创建一个以最大化窗口启动的 GUI 我尝试添加set gcf Units normalized Position 0 0 1 1 在我的图形用户界面的末尾mygui OpeningFcn 功能 但 GUI 未正确最大化 请参阅打印
  • Woocommerce 按属性名称 asc 订购产品

    我在 Woocommerce 中有一个包含产品的自定义页面模板 但我想按属性的术语名称 asc 订购产品 我有三个任期 我不知道正确的方法 我尝试过
  • 无法将本地jar提交到spark集群:java.nio.file.NoSuchFileException

    spark spark 2 1 1 bin hadoop2 7 bin spark submit master spark 192 168 42 80 32141 deploy mode cluster file home me works
  • 如何在 Python 中使用自定义模块的 import 语句

    我对Python编程非常陌生 并且在Windows环境下使用Python 3 3编写简单的helloworld程序 helloworld程序保存为hello py 那么我如何在另一个模块中使用它呢 我尝试了 sys path append
  • 选中哪个单选按钮?

    我想检查哪个单选按钮被选中 然后 在我问这个问题之前 我查看了这里的问题 他们说代码 if document getElementById number1 checked 就是答案 但是 我收到错误 使用未定义的常量文档 假定 文档 并且
  • 流水线 sed 调用和多个 sed 表达式之间的效率有区别吗?

    我有一个关于 bash 中 sed 效率的问题 我有一系列管道化的 sed 语句 例如 var1 Some string of text var2 echo var1 sed s pattern1 replacement1 g sed s
  • 如何在运行时监控某些java方法分配的内存

    我正在创建一个 java 程序 其中我的类假设 A 有一些预定义的行为 但用户可以覆盖我的类来改变其行为 因此 我的脚本将检查是否存在某个子类 而不是我将其称为它的行为 但是如果他在代码中编写了一些阻塞代码或内存泄漏怎么办 这可能会损害我的
  • 在领域迁移期间创建领域对象

    您能够在迁移期间创建领域对象吗 我想要提取现有领域对象的一部分并使用该数据创建一个新对象 但迁移总是挂起 这是我的迁移代码 private class var migrationBlock MigrationBlock return mig
  • 是否可以从 Chromium 扩展中禁用 Flash 插件?

    我知道可以手动禁用 Chromium 中的 Flash 插件 只需转到 chrome plugins 找到 Adobe Flash Player 并将其禁用即可 我想知道是否可以使用 JavaScript 代码或扩展中的任何客户端脚本语言来
  • ASP.NET 图片上传并调整大小

    我有一个 aspx 页面 它将图像从客户端电脑上传到服务器硬盘 但现在我需要更改我的程序 以便我可以在上传时调整图像大小 有人对此有任何想法吗 我无法使用输入文件服务器控件找到此类属性 方法 有人指导我吗 将文件保存到服务器后 您可以使用这
  • Laravel 中的关系和 Blade

    我有 3 个表 如下所述 Table 1 user id username password Name Age Table 2 tasks id task name description Table 3 logs id user id t
  • 重写继承的抽象类中的抽象方法

    好吧 基本上我有以下问题 我试图让一个抽象类继承另一个具有抽象方法的抽象类 但我不想在它们中的任何一个中实现抽象方法 因为第三个类继承了两个类其中 public abstract class Command public abstract
  • 如何分析本机 JNI 库

    如何分析用 C 编写的 Java 本机接口库 我了解常用的 C 分析器 但我的问题是如何分析whole设置包括对 JVM 方法的调用 这可能会减慢程序速度 经过对这里提出的一些方法的一些研究和测试后 我最终使用了sprof 基本上我遵循了可