华为p30 pro和苹果12pm的参数(Pro凭什么吊打iPhone和三星)
华为p30 pro和苹果12pm的参数(Pro凭什么吊打iPhone和三星)扯远了,今天重点聊华为P30 Pro背后的黑科技。苹果的CPU常年吊打同年甚至领先于安卓两三年,最新iPad Pro的A12 X芯片都已经可以挑战绝大多数笔记本了、2015年发布的iPhone 6S用的NVMe闪存吊打全部安卓手机,安卓在2017部分旗舰才用上的UFS2.1才算是跟上了iPhone 6S。只是这些大多数测评机构都不会告诉你~做为一个喜欢深究原理的理性极客消费者,自然对华为P30 Pro的进步有所疑问,那今天就来聊一聊华为P30 Pro背后的黑科技。我们知道,手机是否流畅主要涉及这三个方面:CPU、系统优化、闪存读写速度。我们平时说iPhone流畅,很多人单纯以为是iOS系统比安卓优化得好的原因,你们以为仅此而已吗?
首先声明,本人非海军!不粉不黑,谁好用谁,理性消费,仅此
先给大家看一段视频,因为国内的数码测评环境比较混乱,比如最近的三星Fold 折叠屏手机的开箱...为了避免广告嫌疑,特意在YouTube上找了一份播放量比较高的视频给大家看。
在YouTube拥有121万粉丝的XEETECHCARE分别使用华为P30 Pro对比iPhone XS MAX和三星 S10 Plus。最终结论是:在大多数应用的启动速度上,华为P30 Pro几乎吊打他们(与三星的对比被分成了另一个视频,就不放了)
做为一个喜欢深究原理的理性极客消费者,自然对华为P30 Pro的进步有所疑问,那今天就来聊一聊华为P30 Pro背后的黑科技。
我们知道,手机是否流畅主要涉及这三个方面:CPU、系统优化、闪存读写速度。
我们平时说iPhone流畅,很多人单纯以为是iOS系统比安卓优化得好的原因,你们以为仅此而已吗?
苹果的CPU常年吊打同年甚至领先于安卓两三年,最新iPad Pro的A12 X芯片都已经可以挑战绝大多数笔记本了、2015年发布的iPhone 6S用的NVMe闪存吊打全部安卓手机,安卓在2017部分旗舰才用上的UFS2.1才算是跟上了iPhone 6S。只是这些大多数测评机构都不会告诉你~
扯远了,今天重点聊华为P30 Pro背后的黑科技。
不可否认,华为的海思麒麟980依旧比不了同年产品的骁龙855和苹果A12。闪存速度和众多安卓旗舰机型一样都是UFS 2.1,与iPhone XS MAX的Nvme差距依旧巨大。
但为什么在应用启动速度上还能吊打iPhone XS MAX 和三星S10呢?
前文说过,系统是否流畅主要是跟:CPU、系统优化和闪存速度有关。所以华为P30 Pro的EMUI9.1系统肯定有了黑科技加成。
余承东在P30 Pro的国内发布会上谈到过方舟编译器,前天华为也召开了EMUI媒体沙龙活动,详细介绍了方舟编译器。
所以今天我们就聊一聊华为的这个方舟编译器。
有计算机基础知识的小伙伴都知道,编译器就是将高级语言编译成机器语言。相当于人类和机器的”翻译官“
别看AlphaGo能以3比0击败排名世界第一的世界围棋冠军柯洁,那都是靠程序代码完成的,其实那家伙就只认识0和1,也就是电路是否通电,开还是关。
因为人类记不了那么多指令,所以就延伸出了汇编语言,再到后面又有了高级语言。
编译器将这些高级语言转化成机器语言是需要时间的呀,华为的方舟编译器就做了改进优化,大大缩减了编译需要的时间。
华为称,方舟编译器项目启动于2009年,也就是说,小米还没创立的时候,就开始研发了,耗时10年才完成的项目!
不同的编程语言需要在运行态中进行协同从编译,就会产生额外消耗。方舟编译器激进地直接一次性将多语言统一编译为一套机器码,来提升运行效率。
安卓的底层基于Linux,虽然大部分是C和汇编写的,但应用层面是像Java的虚拟环境。
虚拟机做为一个中间层,将高级语言编译成机器码,但是虚拟机效率并不够高。为了提升编译的速度,安卓这几年也是费劲了心思。
在安卓5.0之前,采用即时编译(Just In Time 简称JIT)方式(运行需要代码时,将 Java转换为机器码的编译)这种方式在APP每一次运行时都需要借助虚拟机(Virtual Machine,简称VM)编译,也就是边编译边运行,运行效率很慢。
在安卓5.0到安卓6.0,谷歌改成了静态编译(Ahead Of Time 简称AOT)方式(安装应用的时候顺便编译成机器码)这种方式不是边编译边运行了,但在安装APP时速度非常慢,并且机器码占用的手机内存空间更大。
安卓6.0之后谷歌又采用了ART(Android Runtime)的AoT和JIT动态编译(只把部分Java语言编译成机器语言,安装应用时不编译成机器码,把你运行最多部分代码在空闲时间编译成机器代码)这种方式都优于之前的编译方式,但对动态语义部分还是无法实现预编译,仍需及时编译(运行前先编译)
华为的方舟编译器是对所有的 Java 语义全部做到静态编译,直接将 Java 语言“翻译”成机器语言(静态编译)
等等,这不就是安卓5.0到安卓6.0采用的AOT编译方式吗,难道华为耗费了十年的项目却开了倒车?
根据华为在前天的EMUI媒体沙龙活动中介绍,安卓ART的AoT和JIT动态编译是运行在手机上,而方舟编译器是在应用开发阶段进行编译的。不需要手机上的VM就可以直接运行。
虽然华为的方舟编译器,和AOT编译方式类似,但要优于后者,因为它在下载APK时就已经是机器码了。
也就是说,只要是经过方舟编译器编译的应用,用户下载后就已经是编译过的了!
不仅摆脱了VM边编译边执行的低效率缺点,安装速度也更快了。
前文说过,编译成机器码后占用更大的内存,那似乎这个方舟编译器优点并不明显呀?
华为在前天的EMUI媒体沙龙活动中还提到:在华为P9就已经商用的F2FS文件系统,相比较传统的EXT4文件系统,用户分区的文件读写流畅度提升20%;超级文件系统(EROFS)采用专利压缩算法加持,使得系统分区随机读性能平均提升20%,并减少14%系统空间占用。
华为的EROFS F2FS文件系统能不能弥补机器码增加的内存空间,我不得而知。但从目前P30 Pro与iPhone XS MAX、三星S10 Plus的APP启动速度对比来看,华为的方舟编译器 F2FS文件系统 超级文件系统(EROFS)确实让EMUI有了质的飞跃了。
华为还称:相比较安卓在内存回收上采用集中回收机制,发声全局回收时更需要暂停应用的缺点。方舟编译器提供了更高效的内存回收机制,回收时无需暂停应用,随时用随时回收,大大提高运行速度。
对我们大多数人来说,最主要的是,华为要把方舟编译器开源!意味着就算我们不使用华为的产品,但只要安卓APP的开发者使用方舟编译器,我们就能够体验到方舟编译器带来的速度上提升了!
但,纵使技术再强大,我依旧不会买华为,因为我不喜欢海军、不喜欢翻过N多次车的厂商、不喜欢欺骗客户、在发布会上误导用户的厂商。
那么,你觉得距离华为抛弃安卓,启用自己的OS还有多远呢?