为什么 Android 的硬件比 iPhone 高,却没有更流畅?

来源:百度文库 编辑:超级军网 时间:2024/04/26 21:51:48
以 Nexus 5 和 iPhone 5s 为例,部分硬件对比如下:

CPU:

Nexus 5 :Krait 400架构 2.3GHz
iPhone5S : Cyclone 架构 1.3GHz

GPU:
Nexus 5 :Adreno 330
iPhone5S : PowerVR 6430 GPU

RAM:
Nexus 5 : 2GB
iPhone5s : 1GB

硬件角度
CPU方面,两者CPU型号分别为:A7和MSM8974。MSM8974拥有4核,单核频率最高可达2.3GHz,相比A7拥有2核,最高频率为1.4GHz。所以,就单纯的CPU计算能力来讲,MSM8974要优于A7,毕竟它单核频率比A7要高很多。另外,由于MSM8974有4核,因此它处理多线程并发能力要强于A7。工艺方面,两者拥有相同的28nm制程,但MSM8974频率高,核心多,所以密集计算情况下,它的功耗和发热量应该要比A7高。

从CPU的Cache方面看,A7拥有64KB+64KB的L1 Cache,1MB L2 Cache和4MB L3 Cache;相比较,MSM8974在这方面要差得多,相信是为了节约成本,仅仅配置了16KB+16KB L1 Cache, 2MB L2 Cache,且没有L3 Cache。如此小的Cache,在实际运行过程中,肯定会发生大量Cache Miss,这就会导致CPU常常在“等待”外围IO(如内存),从而白白浪费了CPU的高速计算能力。MSM8974在Cache的配置上,犹如V8引擎的跑车,却配置了一套四速变速箱,让人无语。

GPU方面,A7集成PowerVR G6430 GPU,而MSM8974集成了Adreno 330 GPU。根据资料,G6430的图形处理性能GFLOPS为166.4-249.6,而Adreno 330的图形处理性能GFLOPS仅为129.6-158.4。所以,PowerVR G6430的图形性能要明显优于Adreno 330。

内存(运存)方面,设备配置的内存越大,表示操作系统允许更多的应用程序驻留内存,在不同的应用程序之间切换会更顺畅。而且,每个应用程序允许使用的内存也会越大,相对来说会更流畅。这方面Nexus的2GB内存要占优。

操作系统角度
Apple IOS,apple开发的移动设备操作系统。IOS的内核使用的是darwin os,该内核与linux的宏内核操作系统不同,是一个类似于windows的混合型内核。有点类型微内核的感觉,不过就性能而言,与Linux相比应该没有什么优势。但是,因为ios的应用程序是使用objective c编码,最终被直接编译为ARM指令集。因此,在实际设备运行过程中,应用程序相当于直接在CPU上运行,避免了虚拟机的指令翻译开销,所以ios的应用程序执行效率相比android要高。

Google Android,是基于Linux操作系统的一个应用程序框架。它大致由以下几个组件组成:Linux内核、Android运行库、通用组件库、应用程序框架和应用程序本身。最终的用户应用程序均运行在一个个隔离的“沙箱”环境中,彼此隔离。其中,最重要的是,Android应用程序的指令不是机器指令,而是dalvik虚拟机指令。也就是说,Android提供了一个Dalvik虚拟机,将Android应用程序的dalvik指令翻译成最终的arm机器指令。这中间虚拟机的翻译过程是有性能损耗的。

应用程序角度
IOS禁止应用程序在后台运行,所有切换到后台的应用程序被操作系统自动休眠,只有前台程序可以占用CPU;相比较,Android就开放得多,它运行应用程序任意创建后台服务Service,所有Service都可以在后台任意占用CPU和内存。因此,当Android安装的应用程序越来越多,且应用程序毫无节制地创建后台服务的话,系统前台应用就被迫和越来越多的后台服务共享CPU资源,从而拖慢了整个系统的速度。也不能说Android这种真正的多任务模式不好,它是一把双刃剑,给应用程序更广阔的发挥空间的前提下,也给了应用程序滥用CPU的权限。因此,从这方面讲,IOS更有利于应用程序发挥流畅性,但代价是应用程序无法再后台工作;Android更有利于发挥应用程序功能,例如后台收离线消息,后台下载等应用。
从屏幕分辨率来看,IOS只有有限几种分辨率,最高也就1136*640,都没有达到1080P全高清的级别。比较而言,Nexus5的分辨率达到了1080*1920全高清级别。为此,应用程序需要更多资源来渲染图像,比较而言,IOS的应用程序就可以更容易达到流畅的帧数;但Nexus5的屏幕则可以达到更锐利,更清晰的图像。

总结
硬件方面,Apple iPhone5s的主频较低,但cache很大,且拥有更高性能的GPU;Nexus5的CPU主频很高,但Cache较小,且GPU相对较弱。所以,iPhone5s更适合表现图像或动画;Nexus5的高主频和更多核心,更适合高密集计算工作和并行计算。但就题主所说的流畅性,iPhone5s更胜一筹;
操作系统方面,IOS没有虚拟机开销,性能相比需要dalvik虚拟机转换的Android,也是胜了一筹;
应用程序角度,由于iPhone5s的屏幕分辨率较低,且没有后台应用程序干扰,所以iPhone5s更容易达到流畅的效果。

用户对速度的主观感受来自于CPU的单核性能。多核在多数情况下只是个添头。iPhone cpu 指令集更先进,寄存器比米 3 多一倍。不同架构的 CPU 无法直接用参数衡量。而更新的架构往往具有决定性优势。容量八倍的一级缓存,以及更大的三级缓存,都显著的存在优势。

2.3G 的负荷不是一直满载的,平时的正常运转在 400-500MHz 的水平。另外 CPU 的总线带宽,二级三级缓存大小等参数都会影响 CPU 性能,iPhone 的 CPU 性能在浏览器 js 解析方面的跑分评测不输于主流 android 机型。
然后,iPhone 的四核 GPU 是目前手持设备中最逆天的一款,这个最逆天的 GPU 配合,加上分辨率更低的屏幕(小米三比 iPhone5s 多 58% 的像素点数量,也就是说每一帧的渲染都要多渲染 58% 的像素数量),导致了 GPU 跑分的「碾压式秒杀」。主流手机中没有一款能比得上 iPhone 5s 的 GPU 全屏跑分性能。
所以对题主的问题,直观的回答为:不是。iPhone 的硬件配置(无论是 CPU 还是 GPU 配置)全面超越了大多数 android 机型,因而可以得到比多数 android 更流畅的画面效果。
Android 阵营不是太拼硬件了,而恰恰是硬件配置不足。
http://appnews.zol.com.cn/436/4369592.html




以 Nexus 5 和 iPhone 5s 为例,部分硬件对比如下:

CPU:

Nexus 5 :Krait 400架构 2.3GHz
iPhone5S : Cyclone 架构 1.3GHz

GPU:
Nexus 5 :Adreno 330
iPhone5S : PowerVR 6430 GPU

RAM:
Nexus 5 : 2GB
iPhone5s : 1GB

硬件角度
CPU方面,两者CPU型号分别为:A7和MSM8974。MSM8974拥有4核,单核频率最高可达2.3GHz,相比A7拥有2核,最高频率为1.4GHz。所以,就单纯的CPU计算能力来讲,MSM8974要优于A7,毕竟它单核频率比A7要高很多。另外,由于MSM8974有4核,因此它处理多线程并发能力要强于A7。工艺方面,两者拥有相同的28nm制程,但MSM8974频率高,核心多,所以密集计算情况下,它的功耗和发热量应该要比A7高。

从CPU的Cache方面看,A7拥有64KB+64KB的L1 Cache,1MB L2 Cache和4MB L3 Cache;相比较,MSM8974在这方面要差得多,相信是为了节约成本,仅仅配置了16KB+16KB L1 Cache, 2MB L2 Cache,且没有L3 Cache。如此小的Cache,在实际运行过程中,肯定会发生大量Cache Miss,这就会导致CPU常常在“等待”外围IO(如内存),从而白白浪费了CPU的高速计算能力。MSM8974在Cache的配置上,犹如V8引擎的跑车,却配置了一套四速变速箱,让人无语。

GPU方面,A7集成PowerVR G6430 GPU,而MSM8974集成了Adreno 330 GPU。根据资料,G6430的图形处理性能GFLOPS为166.4-249.6,而Adreno 330的图形处理性能GFLOPS仅为129.6-158.4。所以,PowerVR G6430的图形性能要明显优于Adreno 330。

内存(运存)方面,设备配置的内存越大,表示操作系统允许更多的应用程序驻留内存,在不同的应用程序之间切换会更顺畅。而且,每个应用程序允许使用的内存也会越大,相对来说会更流畅。这方面Nexus的2GB内存要占优。

操作系统角度
Apple IOS,apple开发的移动设备操作系统。IOS的内核使用的是darwin os,该内核与linux的宏内核操作系统不同,是一个类似于windows的混合型内核。有点类型微内核的感觉,不过就性能而言,与Linux相比应该没有什么优势。但是,因为ios的应用程序是使用objective c编码,最终被直接编译为ARM指令集。因此,在实际设备运行过程中,应用程序相当于直接在CPU上运行,避免了虚拟机的指令翻译开销,所以ios的应用程序执行效率相比android要高。

Google Android,是基于Linux操作系统的一个应用程序框架。它大致由以下几个组件组成:Linux内核、Android运行库、通用组件库、应用程序框架和应用程序本身。最终的用户应用程序均运行在一个个隔离的“沙箱”环境中,彼此隔离。其中,最重要的是,Android应用程序的指令不是机器指令,而是dalvik虚拟机指令。也就是说,Android提供了一个Dalvik虚拟机,将Android应用程序的dalvik指令翻译成最终的arm机器指令。这中间虚拟机的翻译过程是有性能损耗的。

应用程序角度
IOS禁止应用程序在后台运行,所有切换到后台的应用程序被操作系统自动休眠,只有前台程序可以占用CPU;相比较,Android就开放得多,它运行应用程序任意创建后台服务Service,所有Service都可以在后台任意占用CPU和内存。因此,当Android安装的应用程序越来越多,且应用程序毫无节制地创建后台服务的话,系统前台应用就被迫和越来越多的后台服务共享CPU资源,从而拖慢了整个系统的速度。也不能说Android这种真正的多任务模式不好,它是一把双刃剑,给应用程序更广阔的发挥空间的前提下,也给了应用程序滥用CPU的权限。因此,从这方面讲,IOS更有利于应用程序发挥流畅性,但代价是应用程序无法再后台工作;Android更有利于发挥应用程序功能,例如后台收离线消息,后台下载等应用。
从屏幕分辨率来看,IOS只有有限几种分辨率,最高也就1136*640,都没有达到1080P全高清的级别。比较而言,Nexus5的分辨率达到了1080*1920全高清级别。为此,应用程序需要更多资源来渲染图像,比较而言,IOS的应用程序就可以更容易达到流畅的帧数;但Nexus5的屏幕则可以达到更锐利,更清晰的图像。

总结
硬件方面,Apple iPhone5s的主频较低,但cache很大,且拥有更高性能的GPU;Nexus5的CPU主频很高,但Cache较小,且GPU相对较弱。所以,iPhone5s更适合表现图像或动画;Nexus5的高主频和更多核心,更适合高密集计算工作和并行计算。但就题主所说的流畅性,iPhone5s更胜一筹;
操作系统方面,IOS没有虚拟机开销,性能相比需要dalvik虚拟机转换的Android,也是胜了一筹;
应用程序角度,由于iPhone5s的屏幕分辨率较低,且没有后台应用程序干扰,所以iPhone5s更容易达到流畅的效果。

用户对速度的主观感受来自于CPU的单核性能。多核在多数情况下只是个添头。iPhone cpu 指令集更先进,寄存器比米 3 多一倍。不同架构的 CPU 无法直接用参数衡量。而更新的架构往往具有决定性优势。容量八倍的一级缓存,以及更大的三级缓存,都显著的存在优势。

2.3G 的负荷不是一直满载的,平时的正常运转在 400-500MHz 的水平。另外 CPU 的总线带宽,二级三级缓存大小等参数都会影响 CPU 性能,iPhone 的 CPU 性能在浏览器 js 解析方面的跑分评测不输于主流 android 机型。
然后,iPhone 的四核 GPU 是目前手持设备中最逆天的一款,这个最逆天的 GPU 配合,加上分辨率更低的屏幕(小米三比 iPhone5s 多 58% 的像素点数量,也就是说每一帧的渲染都要多渲染 58% 的像素数量),导致了 GPU 跑分的「碾压式秒杀」。主流手机中没有一款能比得上 iPhone 5s 的 GPU 全屏跑分性能。
所以对题主的问题,直观的回答为:不是。iPhone 的硬件配置(无论是 CPU 还是 GPU 配置)全面超越了大多数 android 机型,因而可以得到比多数 android 更流畅的画面效果。
Android 阵营不是太拼硬件了,而恰恰是硬件配置不足。
http://appnews.zol.com.cn/436/4369592.html




苹果应该跟WP比流畅而不是跟安卓比
因为安卓是一个非常粗糙的东西,能有今天完全是运气


程序定制有加成。分辨率也是一方面。虽然安卓的内存大但内存没有成为瓶颈。所以内存影响不大。还有优秀的a7

程序定制有加成。分辨率也是一方面。虽然安卓的内存大但内存没有成为瓶颈。所以内存影响不大。还有优秀的a7
苹果跟安卓比,拼硬件,但不唯硬件。
个人觉得安卓还不如wm,软件不会自己启动,不会自己偷流量,不用root。
缺点是不支持在线视频,软件少,不支持6万色
这个没办法,安卓的碎片化太严重,再说本身安卓机就是拼命的堆硬件
java虚拟机体制下你很难要求同配置下高性能的啊。
而且还有各种各样让你眼花缭乱的配置
最常见的屏幕布局,需要自适应跟不需要自适应带来的系统负荷哪能一样啊,各种图片缩放啊
瞎扯淡,什么时候ios支持的分辨率最高是1136X640了?也不是“所有程序”切换到后台就禁止运行。
一开始拿nexus 5和iphone 5s比,后来怎么又变成米3了
从屏幕分辨率来看,IOS只有有限几种分辨率,最高也就1136*640,都没有达到1080P全高清的级别。比较而言,Nexus5的分辨率达到了1080*1920全高清级别。为此,应用程序需要更多资源来渲染图像,比较而言,IOS的应用程序就可以更容易达到流畅的帧数;但Nexus5的屏幕则可以达到更锐利,更清晰的图像。


Don’t zhuangbility,zhuangbility leads to leipility!
说点题外话,今天看了 s5,觉得安卓除了打打价格战,别的没什么希望了。
又来了,周经贴来自: Android客户端
苹果又来超大打广告来自: Android客户端
安卓的架构就是个杯具,linux上有又加了两层壳,核心技术不足的结果
楼主你知道的比我们都多了,还来问我们,你是呵呵黑乎乎呵呵呵
当初苹果电脑的图像处理性能也远超PC,当然价格也就远超了。但随着硬件发展,PC的性能大大超出一般需求,苹果电脑被挤出了市场。最初PC都是在国外生产的,现在除了高集成芯片,都是在中国生产和组装。
手机也在重复历史。
wb686 发表于 2014-4-20 22:35
安卓的架构就是个杯具,linux上有又加了两层壳,核心技术不足的结果
运行库iOS也有,虚拟机效率并不低,况且4.4以后安装的时候就编译完成了。
和iphone的假后台也有点关系吧
运行库iOS也有,虚拟机效率并不低,况且4.4以后安装的时候就编译完成了。
运行库是为了规避开源协议,应用框架就纯粹是吃独食的贪婪
wb686 发表于 2014-4-21 00:32
运行库是为了规避开源协议,应用框架就纯粹是吃独食的贪婪
看不懂。
安卓的应用框架难道不是开源的吗?规避了什么开源协议?
iOS应用难道没有运行库或框架也能运行吗?
壮东风 发表于 2014-4-21 07:24
看不懂。
安卓的应用框架难道不是开源的吗?规避了什么开源协议?
iOS应用难道没有运行库或框架也能运 ...
上面运行的软件也要开源。
开始灌水 发表于 2014-4-21 11:04
上面运行的软件也要开源。
开源系统可以运行闭源软件,没有任何一条协议有此限制。
Linux上运行了多少闭源软件,还需要列举吗?
安卓上绝大部分应用和游戏都是闭源的。
壮东风 发表于 2014-4-21 11:24
开源系统可以运行闭源软件,没有任何一条协议有此限制。
Linux上运行了多少闭源软件,还需要列举吗?
...
GPL有传染性,别忘了有gcc、glibc、等一系列的GPL下的工具或库
邻家小妹妹 发表于 2014-4-20 21:34
一开始拿nexus 5和iphone 5s比,后来怎么又变成米3了
nexus5和米3差不太多,算是一代的,可以这样处理
开始灌水 发表于 2014-4-21 12:00
GPL有传染性,别忘了有gcc、glibc、等一系列的GPL下的工具或库
你用了GPL软件的源码,当然需要公开本软件的源码,仅仅在库上执行或使用工具,没有任何限制。
这问题从GPL诞生第一天起就明确了,还需要继续讨论吗?
壮东风 发表于 2014-4-21 13:17
你用了GPL软件的源码,当然需要公开本软件的源码,仅仅在库上执行或使用工具,没有任何限制。
这问题从G ...
真如你所说,android也就不会替换掉那么多GPL组件了
我觉得Surface 很流畅
开源系统可以运行闭源软件,没有任何一条协议有此限制。
Linux上运行了多少闭源软件,还需要列举吗?
...
如果用了glibc就得开源,所以谷歌开发了自己的库
wb686 发表于 2014-4-21 19:03
如果用了glibc就得开源,所以谷歌开发了自己的库
仅仅调用没关系,Google大概增加了一部分API。
C和Java的区别。
仅仅调用没关系,Google大概增加了一部分API。
如果只是增加部分api就替换换掉glibc,那android的libc就不会如此坑了,许多函数接口都不一样,给底层的程序移植带来很大麻烦。当然,上层应用开发都是google提供的SDK,所以没人会注意到这点。
因为屏幕小
开始灌水 发表于 2014-4-23 10:54
如果只是增加部分api就替换换掉glibc,那android的libc就不会如此坑了,许多函数接口都不一样,给底层的 ...
Google的做法只要符合规范,就没什么好指责的。
ipad屏幕不小了
gameboy999 发表于 2014-4-19 22:41
因为安卓是一个非常粗糙的东西,能有今天完全是运气
这个似乎在理~~
不过一些东西还是果子优势~
操作系统好,应用软件优化的好
a安卓为了兼容牺牲了性能。喜欢速度?跟wp比去