Android 4.1 – 如何使用systrace做性能分析

systrace是Android 4.1引入的一套用于做性能分析的工具,它基于Linux内核的ftrace机制(用于跟踪Linux内核的函数调用),可以输出各个线程当前的函数调用状态,并且可以跟当前CPU的线程运行状态,Display VSYNC间隔,SurfaceFlinger Window Composite间隔等系统信息在同一个时间轴上进行对比,让我们分析程序在某个时间点在当前系统上下文上的运行状态变的更简单方便,比如你可以很容易分析出你的程序在UI线程的哪些函数占用了过多的时间,从而错过了当前的Window Composite导致掉帧。

Systrace example report

 

如何使用:

http://developer.android.com/tools/help/systrace.html

 

如何分析性能:

http://developer.android.com/tools/debugging/systrace.html

 

ftrace相关的一些资料:

http://www.kernel.org/doc/Documentation/trace/ftrace.txt

https://www.osadl.org/fileadmin/dam/presentations/RTLWS11/rostedt-ftrace.pdf

 

支持说明:

1,只在Android 4.1+支持

2,非原生的ROM如CM可能不支持,是否支持可以检查系统是否有这个目录 – /sys/kernel/debug/tracing

3,systrace.py脚本只能在Ubuntu下运行,Windows下面无法运行

Advertisements