随着红米Note等手机的热卖,八核手机已经逐渐成普及之势。相比几年前的单核安卓手机,如今的手机性能已经翻了不知道多少倍,可还是有很多用户会产生疑惑:我的手机都八核了,进行某些操作或者使用某些硬件的时候,为什么还会卡顿呢?
安卓为什么会卡?
通常人们会抱怨安卓系统不好,对硬件要求高,容易卡顿。其实,iPhone一代的时候也卡的厉害。即使到了iPhone 4S,当你上了新版本的iOS也卡。
WP第一代不卡是因为WP人为的限制的滑动速度,你快速滑动,系统根本不理睬你,还是慢慢来,牺牲速度以保证流畅性。此外,WP的动画做的很充分,用快速的动画掩盖速度和卡顿。这样给人的感觉就是不卡。
而早期的安卓没有做这么多,直到4.2以后才逐渐成熟,动画过渡有了,黄油计划有了,卡顿问题也就没有了。此外,安卓因为原理的问题,图像方面GPU加速做的比较晚,很多安卓程序还要依赖CPU的性能。如果分辨率太高负担太重而CPU性能不足,也会卡顿。所以,安卓不卡顿的硬件门槛比iOS和WP要高一些,低配置的安卓机容易出现卡顿现象。也就是说,安卓的卡顿并不是一个必然现象。但是当处理器性能不够、分辨率过高、软件本身有问题或者系统版本过老,就会出现卡顿,影响体验。
流畅和核心数的关系
很多人看手机,就是看核心数。认为核心多的性能好,不会卡顿。抱怨“八核还会卡”就是基于这种思想。而事实上,系统的流畅性和几个核心关系不大。我们所说的流畅性包括两部分。
一是系统本身的流畅性,实际是“启动器”这个应用的流畅性。
二是应用的流畅性,就是各种应用运行的流畅性。
影响这两个流畅性的并不是核心多少,而是单核心的性能和内存的带宽。我们的“启动器”和各种应用大多数情况下只能利用上一个或者两个核心,能利用四个核心的就很少了,能利用上八个核心的凤毛麟角。所以决定速度快慢的并不是有几个核心,而是单核心的性能如何?
现在市面上处理器,有A7、A9、A15、环蛇各个版本、还有Intel的,性能差异很大。如果是用A7的话,八核心不如A15的两个核心管用。从流畅的角度看,单个核心的频率和类型更重要,核心数多了没用。
分辨率和内存带宽的关系
对智能手机或者平板来说,都是SOC,也就是说显示核心是集成的,和CPU共享内存带宽,没有独立的显存。而手机也好,平板也好,分辨率都越来越高,这就对内存带宽提出了很高的要求。
程序运行需要在内存里面运行,处理器再快,内存存取速度跟不上,系统一样会卡顿。而分辨率越高,对内存带宽的要求就越高。在内存带宽不够而分辨率过高的情况下,无论处理器快到什么程度系统都会卡。在安卓的早期,WVGA的分辨率只有800*600=48万像素,对内存带宽压力不大。但是随着安卓分辨率的飙升,带宽就成为问题。那么多少带宽合适呢?苹果产品可以做个参考。
The New iPad是个很有意思的短命产品,它使用的处理器和分辨率可以做一个参考。A5X处理器其实只是一个双核A9的处理器,主频还不高,和MT6577一个档次。而能支持The New iPad流畅运行的是A5X强大的图形性能和内存带宽,A5X的内存带宽高达12.8GB/S。The New iPad的分辨率是2048*1536=314万像素,也就是说,苹果认为每100万像素提供4GB/S的带宽可以保证基本流畅性。和A5X而同时期的 A9四核处理器带宽只有4.2GB/S,6.4GB/S。他们用1280*720=92万像素的分辨率,每100万像素可以提供超过4GB/S的带宽,基本也能保证流畅。