Android移动性能实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

从整个软件的性能来说,资源类性能就像是撑起冰山一角的下面的冰层,如图1所示。构成这部分的,我称之为3+1+1。3+1是传统部分——磁盘、CPU和内存,加1是与环境密切相关的网络;最后的一个加1则是因为移动网络而显得特别重要的电池(耗电)。但为什么它们能撑起那冰山一角呢?

图1

很简单,因为冰山一角体现出来的交互类性能,包括流畅度、时延等,实际上都是资源问题,例如流畅度问题,可以是内存的垃圾回收太频繁导致的,因为有些GC会STOP THE WORLD;又可以是CPU问题,decode图片开了过多的子线程,导致主线程的CPU资源被争抢;更可以是在主线程中读/写磁盘,磁盘读/写耗时抖一抖、界面也跟着卡一卡,等等。所以关注资源类性能,其实是关注问题的本质去解决问题的方式。