利用simpleperf评估应用性能

Android Studio 包含 Simpleperf 的图形前端,记录在使用 CPU Profiler 检查 CPU Activity 中。大多数用户更喜欢使用该图形前端,而不是直接使用 Simpleperf。

如果您更喜欢使用命令行,可以直接使用 Simpleperf。Simpleperf 是一个通用的命令行 CPU 性能剖析工具,包含在面向 Mac、Linux 和 Windows 的 NDK 中。

Simpleperf包含两部分:simpleperf可执行文件和Python脚本。路径:Android/sdk/ndk/20.0.5594570/simpleperf

simpleperf可执行文件的工作方式类似于linux-tools-perf,但是具有针对Android分析环境的一些特定功能:详情参看simpleperf

Python 脚本根据功能划成如下三部分:

  1. 用于记录事件的脚本, like app_profiler.py, run_simpleperf_without_usb_connection.py.
  2. 用于报告的脚本, like report.py, report_html.py, inferno.
  3. 用于分析 profiling data的脚本, like simpleperf_report_lib.py.

1.事件

利用simpleperf评估应用性能

2.分析Android App性能

分析一个 Android 应用的性能可以按照如下三步走:

  1. 准备一个要分析的APP.

例如Google官方的实例:

<code>$ git clone https://android.googlesource.com/platform/system/extras
$ cd extras/simpleperf/demo
# Open SimpleperfExamplesWithNative project with Android studio, and build this project
# successfully, otherwise the `./gradlew` command below will fail.
$ cd SimpleperfExampleWithNative

# On windows, use "gradlew" instead.
$ ./gradlew clean assemble
$ adb install -r app/build/outputs/apk/profiling/app-profiling.apk/<code>

2.抓取性能数据:

<code>./app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative --compile_java_code  -a .MixActivity -lib /Volumes/lixinmu/google/SimpleperfExampleWithNative/app/build/intermediates/cmake/debug/obj/arm64-v8a//<code>

3.分析性能数据:

<code>python report_html.py/<code>

4.查看对应的性能分析数据:

利用simpleperf评估应用性能

通过数据我们可以看到各个线程占用的CPU时钟周期

3. app_profiler架构

利用simpleperf评估应用性能


分享到:


相關文章: