05 | 卡顿优化(上):你要掌握的卡顿分析方法
该思维导图由 AI 生成,仅供参考
基础知识
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了移动设备和PC的CPU性能差异,以及评价CPU性能的参数和架构设计。重点讨论了卡顿问题分析指标,包括CPU使用率、CPU饱和度和线程优先级等方面。文章还介绍了一些常用的命令和文件,如top命令、vmstat命令、strace命令等,用于帮助开发者更好地排查卡顿问题。此外,还介绍了一些卡顿排查工具,如Traceview、Nanoscope、systrace和Simpleperf,分析了它们的特点和适用场景。总的来说,本文通过对CPU性能和卡顿问题分析指标的介绍,为读者提供了一些基础知识和工具,帮助他们更好地理解和解决应用卡顿问题。 文章还介绍了Android Studio 3.2的Profiler中集成的几种性能分析工具,以及它们的功能和展示方式。其中,Call Chart适合分析整个流程的调用,而Flame Chart则适合直观展示代码路径的CPU时间分布。作者强调了底层基础知识对于理解工具原理和排查性能问题的重要性,同时鼓励开发者关注性能问题并学会思考工具的原理和局限性。 此外,文章提出了课后作业,要求读者解读示例统计信息并分享瓶颈所在,以及动手写一个工具得到相似统计信息。这样的实践性作业有助于读者深入理解文章内容并提升技能。 总的来说,本文内容丰富,涵盖了CPU性能评价、卡顿问题分析工具和Android性能分析工具的使用,同时提出了实践性的课后作业,对读者进行了全方位的引导和激励。
《Android 开发高手课》,新⼈⾸单¥59
全部留言(56)
- 最新
- 精选
- 小雨点有点深了,表示看不太懂
作者回复: 是linux部分还是四个卡顿工具比较难呢?
2018-12-11211 - memory感觉这个课可能更适用于比较深入研究过内存方面知识的人,但是大部分人应该都是开发业务的程序员,想对这方面做个系统的学习,感觉还是有点难了,给出的课后作业,有点一脸懵逼,有点无从下手的感觉
作者回复: 已经很少很简单但是又可以进阶的内容,可以尝试看看文章中的一些背景知识 后续也会给出学习路线图出来
2018-12-129 - 国庆太极客了吧,讲的东西感觉像是华山论剑!
作者回复: 所讲的内容并不是为了炫技,都是我们日常工作中可能会用到的知识
2018-12-123 - 石先绍文哥,我又来了。我比较感兴趣之前内存优化文章里面提到对 Bitmap 的优化,可以[通过直接调用 libandroid_runtime.so 中 Bitmap 的构造函数]来创建一个空的 nativeBitmap 对象,但这个操作跟平时自己通过 jni 调用自己编译的 so 包里的 native 方法不太一样,网上也找不到例子来说明这个过程,所以能不能把这个过程再描述详细一点,或者最好是能 show me code,我也想自己实操一遍你说的那些点,非常感谢。
作者回复: 这个其实没那么简单,编译的时候也要把Bitmap相关的很多头文件引入。 调用是通过dlsym来实现的,这块我后续有时间提交到github吧
2018-12-1223 - Xmilton张总,我想问下真机是不是读不到/proc/stat里的信息?该怎么处理呢。
作者回复: Android 8.0之后的确不让读这个文件了
2019-01-092 - 李大可通过读取文件获取进程cpu,线程cpu等使用状态的一个问题是在不少机型上,没有读取这些文件的权限。如果需要将release版本的这些性能数据采集并上传供数据分析,数据的采集就是一个问题,比如线程cpu使用率,常规的做法是才用两个间隔时间较短的cpu快照,然后计算应用cpu使用时间在系统cpu使用时间所占的比例,但是cpu使用时间是一个一个时间片,上述的统计方法并不够准确
作者回复: 从我们的应用来看,获得的成功率还是非常高的。 因为我们应用基本做了线程池收拢,大部分线程都是常驻的。可以从整体上看到各个线程的一些情况,这块数据在一些场景作用不大,一些场景还是可以发现问题。
2018-12-132 - 我的心情在荡漾各种命令一脸懵逼
作者回复: 这些都是比较基本linux命令,可以在网上查一下用法
2018-12-122 - Geek_sky我尝试用uptime查看系统负载,只能看到up time: 06:40:38, idle time: 20:50:31, sleep time: 00:00:00。我是用了cat /proc/loadavg查看到了系统负载。是不是现在的机器不能通过uptime查看了?
作者回复: Android很多Linux的命令是没有支持的
2019-12-1321 - Akon Convict希望作者能给出个深入学习的路线图
作者回复: 正在整理中
2018-12-201 - 张亚运计算机科学太高深了,知道自己渺小的办法是多出去看看走走,在自己圈子里,总以为自己无所不知。
作者回复: 终生学习
2019-12-14