注意:
两种方式互相补充
正确认识工具及不同场景选择合适的工具
traceview
图形的形式展示执行时间、调用栈等
信息全面,包含所有线程
使用方式
Debug.startMethodTracing("");
Debug.stopMethodTracing();
生成文件在sd卡:Android/data/packagename/files
总结
运行时开销严重,整体都会变慢
可能会带偏优化方向
traceview和cpu profiler:traceview可以通过埋点精确的控制起始结束时间,traceview生成的文件可以通过cpu profiler来查看
systrace
结合Android内核的数据,生成Html报告
API18以上使用,推荐TraceCompat
使用方式
python systrace.py -t 10 [other-options] [categories]
developer.android.com/studio/comm…
TraceCompat.beginSection( "sectionName" );
TraceCompat.endSection();
cputime与walltime区别
walltime是代码执行时间
cputime是代码消耗cpu的时间(重点指标)
walltime和cputime有时候相差大的原因,比如锁冲突
总结
轻量级,开销小
直观反映cpu利用率