Android设备不支持Simpleperf cpu-cycles

时间:2017-02-08 13:43:04

标签: android android-ndk perf

我正在尝试使用我的Android ndk应用程序中的simpleperf进行分析,但是当我输入simpleperf record命令时,系统会报告此消息:

  

simpleperf E 02-08 13:34:47 15380 15380 event_selection_set.cpp:68]   内核不支持事件类型'cpu-cycles'

我阅读了本教程:https://android.googlesource.com/platform/system/extras/+/master/simpleperf/README.md

我按照以下步骤操作:

  Make android debuggable=true in the manifest. 

  adb shell setprop security.perf_harden 0 

  adb shell 

  shell@mako:  run-as com.mysample.test

  adb push bin/android/arm/simpleperf /data/local/tmp

  shell@mako: cp /data/local/tmp/simpleperf .

  shell@mako: ./simpleperf record -p  12083 --duration 30

这是否意味着硬件不支持nexus 4 cpu-cycles,或者我没有在内核上激活特定的安全标志?

我使用的是root用nexus 4设备。

Ndk 13b版。

Android版:5.1

内核版本:3.4.0-perf-gf75bb4f

pd:由于与perf的相似性,我标记了perf标记。

提前致谢。

垂发。

1 个答案:

答案 0 :(得分:2)

Nexus 4支持cpu-cycles事件。我在git历史中找不到内核版本f75bb4f,所以我没有测试相同的内核。我已经通过在nexus 4上使用simpleperf在ndk-r13b中闪烁5.1.1(LMY48T)进行了测试,它可以工作。所以我怀疑你使用的内核禁用了perf事件,你可以通过在https://developers.google.com/android/images#occam中闪烁一个新图像来解决这个问题。