我正在尝试使用谷歌提供的Simpleperf工具来分析Android上的原生代码。
我已经完成了他们示例中列出的每个步骤,将security.perf_harden设置为0,检查我正在使用的设备(Nexus9平板电脑)的架构,最后在设备外壳中使用以下命令启动Simpleperf:
./simpleperf record -p 10910 --duration 5但结果是,我得到了
simpleperf I 04-05 10:53:27 11773 11773 cmd_record.cpp:341] Samples recorded: 0. Samples lost: 0.而且我似乎不能让Simpleperf记录任何样本。我用-g标志在调试中编译了我的本地库,我的安卓应用程序被标记为android:debuggable=true (尽管显然我可以省略它,只需在调试中构建)。在这一点上,我不能确定Simpleperf在记录样本时可能会缺少什么。
如果我尝试一个简单的:
./simpleperf report然后,这就是我的结论:
Cmdline: /data/data/com.my.app_package/simpleperf record -p 10910 --duration 5
Arch: arm64
Event: cpu-cycles (type 0, config 0)
Samples: 0
Event count: 0
Overhead Command Pid Tid Shared Object Symbol我在这里做错了什么或遗漏了什么?
发布于 2017-04-19 05:04:47
您是否在分析时使用该应用程序。如果进程与cpu无关,并且处于休眠模式,则可能得不到任何示例。https://android.googlesource.com/platform/system/extras/+show/master/simpleperf/README.md#457
https://stackoverflow.com/questions/43226657
复制相似问题