TraceView
图形的形式展示执行时间、调用栈等
信息全面,包含所有线程
使用方式
1 | // 开始 |
生成的文件在sd
卡:Android/data/packagename/files
解析文件
将生成的trace
文件导出后,通过Android studio
内置的Profile
工具进行加载
快捷键:
W:放大
S:缩小
A:左移
D:右移
说明:
Thread Chart
:函数调用图- 绿色:自身代码
- 橙色:系统
api
- 蓝色:三方
api
(包括Java API
)
Flame Chart
:火焰图,会把所有相同函数聚合在一起Top Down
:函数调用链表Bottom up
:谁调用了该函数Wall Clock Time
:程序执行时间Thread Time
:cpu消耗时间
新方式
新版本 Android studio
可使用 cpu profiler
捉取信息
Sample Java Methods
- 频繁捕获应用的堆栈信息,对运行时性能开销较小,但有可能记录不准确
Trace Java Methods
- 会记录方法的详细执行时间和CPU信息,对运行时性能开销较大
Sample C/C++ Functions
- 需要
Android 8.0
及以上的设备,内部使用simpleperf
跟踪应用的native
代码
- 需要
Trace System Calls
- 需要
Android 7.0
及以上的设备,捕获非常详细的应用运行和应用与系统资源交互情况
- 需要
总结
TraceView
通过代码进行埋点,可控性更高
运行时开销严重,整体都会变慢,可能会带偏优化方向
cpu profiler
- 可通过
IDE
随时捕捉线程信息