感谢maomaobear的投递
随着智能手机在大众中的普及,我们经常听到下面的抱怨:“为什么我的手机是八核了还卡。”每次听到这种话我都想说一句:“大哥,其实卡不卡和八核四核关系不大。”但是要把智能手机的卡、流畅这个事情说清楚并不简单,这背后的秘密也远不是三句两句能说清楚的,这里我们做一个粗略的解释。
随着智能手机在大众中的普及,我们经常听到下面的抱怨:“为什么我的手机是八核了还卡。”每次听到这种话我都想说一句:“大哥,其实卡不卡和八核四核关系不大。”但是要把智能手机的卡、流畅这个事情说清楚并不简单,这背后的秘密也远不是三句两句能说清楚的,这里我们做一个粗略的解释。
安卓为什么会卡?
通常人们会抱怨安卓系统不好,对硬件要求高,容易卡顿。其实,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的带宽,基本也能保证流畅。
而到了1920*1080=207万像素的时候,就只有8064的8.3G/S带宽勉强可以支撑了。这就是为什么第一代1080P智能手机都用APQ8064的原因。
最新的骁龙801(8974AC)内存带宽高达14.9GB/S,支持2560*1440=368万像素的分辨率,刚刚过了4GB/S每100万像素的底线,也有了流畅的基础。这是为什么最新的几款手机敢于支持这个分辨率的基础。但是,市面上其他几款处理器就很不乐观了,MT6592的带宽大约是5.3GB/S,支持720P不是问题,但是支持1080P,每100万像素只有2.56GB/S。无论启动器怎么优化都很难流畅,这就是八核心反而卡顿的原因。同样,华为海思的K910的带宽是6.4GB/S,比MT6592要好,但是带1080P也会吃力。笔者最近在测试一个Intel ATOM Z3735D的平板,314万像素只有10.6GB/S的带宽,也是感觉卡顿。
智能手机流畅性的秘密
通过上面的分析,我们可以看出,智能手机的流畅是多方面因素所决定的。对用户来说,首先要看手机的分辨率和内存带宽,两者比例是否合适,如果分辨率太高内存带宽太低,对软件优化的要求就很高,很难流畅。
有些厂商会玩分辨率优化的优势,譬如名义是1080P的屏幕,实际给你显示的是720P的内容,LG就有这个功能。采用这类技术的厂商可以在性能不够的情况下保证流畅。不过对消费者来说是体验缩水。MT6592搭配1080P屏幕的组合很难流畅,这是硬伤。
如果一个机器的硬件配置没问题,但是体验依然不流畅。就是启动器和软件选择的问题。这种手机你可以自己装一个APX或者离子启动器,苹果启动器之类的第三方启动器,立即有脱胎换骨的感觉。
同样,硬件达标的机器,软件不流畅,可以换其他软件,譬如官方微博客户端不流畅,可以换Fuubo。自带浏览器不流畅可以换百度浏览器。一些垄断性的软件做的体验糟糕、不思进取不是手机之罪。