如何性能调优
在软件开发过程中,想必很多读者都遇到过系统性能问题。而解决系统性能问题的几个主要步骤是:
测评:对系统进行大量有针对性的测试,以得到合适的测试数据。
分析系统瓶颈:分析测试数据,找到其中的hotspot(热点,即bottleneck)。
性能优化:对hotspot相关的代码进行优化。
由上述步骤可知,性能优化的目标对象是hotspot。如果找到的hotspot并非真正的热点,则性能优化的结果必然是事倍功半甚至竹篮打水一场空。利用好Android的各种性能分析工具它们能很好得帮助开发者找到hotspot。
Android Profiler(Simpleperf)
使用见图示即可,基本跟下面的trace分析工具一模一样
Android Studio 3.0 利用 Android Profiler 测量应用性能
https://juejin.im/post/5b7cbf6f518825430810bcc6
Android性能优化之CPU Profiler
https://juejin.im/entry/5c0daf65f265da6150644a1d
其他性能分析工具对比
Android性能分析工具主要有两种:
一种是根据method trace文件进行可视化分析
一种是根据内存heap快照进行分析
工具 | 定义说明 | 解决什么问题 | 用法 |
---|---|---|---|
TraceView | 简而言之就是,分析trace的可视化工具, | 分析卡顿情况。 从代码层面分析性能问题,针对每个方法来分析,比如当我们发现我们的应用出现卡顿的时候,我们可以来分析出现卡顿时在方法的调用上有没有很耗时的操作,关注以下两个问题:调用次数不多,但是每一次执行都很耗时 方法耗时不大,但是调用次数太多 简单一点来说就是我们能找到频繁被调用的方法,也能找到执行非常耗时的方法,前者可能会造成Cpu频繁调用,手机发烫的问题,后者就是卡顿的问题 发现出现手机发烫、卡顿、高 CPU 占有率的现象问题的原因。 | |
system trace | 总体来说,Systrace比Traceview用途更广泛,它支持对CPU、Native进程甚至Kernel线程进行性能数据采样,可帮助开发者对整个系统的性能情况进行一个详尽的分析。不过其用法比Traceview要复杂,而且还需要对Kernel做一些配置调整。 |
其他内存分析工具
MAT使用
https://anacz.blog.csdn.net/article/details/75091334
Memory Monitor使用
https://anacz.blog.csdn.net/article/details/75043915
参考资料
Android性能专项测试
https://www.kancloud.cn/digest/itfootballprefermanc/100904
Android 编程下的 TraceView 简介及其案例实战(这个使用讲解的详细)
https://www.cnblogs.com/sunzn/p/3192231.html
https://www.cnblogs.com/dongdong230/p/4200641.html
了解 Systrace
https://source.android.com/devices/tech/debug/systrace
几乎是史上最全最实用的Android性能全面分析与优化方案研究
http://www.androidchina.net/8612.html
Android系统性能调优工具
https://ericchows.github.io/Android-Performance/