启动优化工作选择
注意点:
两种方式 互相补充
正确认识工具及不同场景选择合适 的工具
1、traceview工具:
图形的形式展示代码执行时间、调用栈等
信息全面,包含所有线程
使用方式:
Debug.startMethodTracing("app");//在application类里的onCreate()方法最开始点调用 ,参数作为保存文件的名字,例如:app.trace
Debut.stopMethodTracing();//在application类里的onCreate()方法里结束点调用
生成文件在sd卡:Android/data/packagename/files/xxx.trace
文件分析:
优缺点分析:
traceview 支行时开销严重,整体都会变慢。因为他会把所有线程里的所有方法都运行一次,以及进行排序。
可能会带偏优化方向
traceview与cpu profile对比,它可以通过代码埋点,可以准确进行抓取信息,profile则需要在APP启动那一刻马上同步启动,才能看得到结果。
2、systrace工具:
结合Android内核的数据,生成Html报告
要求API 18以上使用,为了兼容版本,推荐TraceCompat
使用方式:
python systrace.py -t 10[other-options] [categories]
TraceCompat.beginSection("app");//在application类里的onCreate()方法最开始点调用 ,参数作为保存文件的名字,例如:app.trace
TraceCompat.endSection();//在application类里的onCreate()方法里结束点调用
在终端运行:
python /User/Liuzhao.Future/Library/Android/sdk/platform-tools/systrace/systrace.py -b 32768 -t 5 -a com.optimize.performance -o performance.html sched gfx view wm am app
优缺点:
轻量级,开销小
直接反映cpu利用率
cputime 与 c区别:
优化方向应该看的是cputime的时间,而非 walltime 时间
walltime 是代码执行时间,cputime 是代码消耗cpu的时间(重点指标)
举例:锁冲突 ,导致walltime 消耗时间非常长
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】