摩尔定律也顶不住的安迪-比尔定律

该文章材料和部分观点来源于网络

  IT行业中存在着三大定律,其完整地表示出计算机行业的发展规律:摩尔定律、安迪-比尔定律和反摩尔定律。摩尔定律想必大家一定很熟悉了,这延续了50多年的定律其实并不永久有效,摩尔认为其还能坚持五到十年。反摩尔定律也很好理解:如果反过来看摩尔定律,一个IT公司如果今天和18个月前卖掉同样多的、同样的产品,它的营业额就要降一半。而下面要详细介绍的,是安迪-比尔定律。


  安迪-比尔定律的字面意思就是比尔要拿走安迪所给的(What Andy gives, Bill takes away)。通俗来讲,就是软件的升级吃掉硬件提升的所带了性能。只了解摩尔定律的计算机消费者可能会产生这样的想法:如果我今天嫌计算机太贵买不起,那么我等十八个月就可以用一半的价钱来买。而这美好的想法被安迪-比尔定律无情地摧毁了。确实,在过去的二十年里,英特尔处理器的速度每十八个月翻一番,计算机内存和硬盘的容量以更快的速度在增长。然而,计算机较几十年前快了一百倍,运行软件的速度感觉没什么太大改变,微软的系统越来越慢,应用软件也越来越大,这都是因为安迪-比尔定律。


  在移动平台上,软件臃肿化甚至要比桌面平台更严重。先来看看以优化效果拔群闻名的苹果,iOS4的体积600M不到,而iOS7体积已经达到了1G多。今日买的手机使用时就仿佛回到了几年前,依然流畅顺滑,然而把几年前的手机放在今天,多开几个页面就会卡死,回到主屏的过渡动画“一秒一动”,这就是系统、软件越发臃肿的最好证明。这个定律硬生生把原本属于耐用消费品的手机变成了消耗品,不想换手机?你会被逼得无可奈何。



那么,造成软件臃肿化的原因是什么呢?

出处:PConline原创

1. 硬件需求进化:好钢用在刀刃上,刀刃同样要好钢

  随着技术进步和用户需求的发展,软件增肥,本来是一件非常正常的事情。想要马儿跑,哪能让马儿不吃草。拿最直观的界面来说,早年的计算机只能够显示最基本的字母,如英文字母以及日文的假名等等,要显示各种汉字,还得增加字库容量;到了图形界面年代,从16色到256色到32位色,每一步进化都需要更先进的硬件铺路。
  十年前PC可以轻松解码DVD,对1080p的蓝光碟一筹莫展,而现在的手机都能放4K视频了;十年前手机可以听歌拍照,但和现在将随身听卡片机打得掉一地牙的手机相比,完全不是一回事。在未来,3D、全息以及沉浸式体验将会给人们带来另一番新天地。理所当然,这片天地必须要用更强劲的硬件才能撑得起。

2. 软件功能过剩:好钢用在刀刃上,刀背也来分杯羹

  不知道从什么时候开始,各种软件突然变得很喜欢把奇怪的东西塞进自己里面。一个好好的聊天软件,突然就多出了新闻浏览安全杀毒等功能;一个好好的浏览器,突然就多出了安全杀毒社交聊天等功能;一个好好的杀毒软件,突然就多出了社交聊天新闻浏览等功能。平时装三个软件可以得到三种功能,现在装三个软件得到九种功能。功能重复,专治性能过高!

3. 软件欲求不满:好钢坏钢一箩筐,管他什么顶硬上

  对于某些开发者而言,硬件似乎没有什么过剩不过剩的区别。无论硬件有多高,总有人能够写出榨干性能的软件。
  无论是哪个时代都会出现粗制滥造导致的软件臃肿化。不管硬件性能去到多高,恶劣的代码总能够化神奇为腐朽,这在开放程度高的平台尤为常见。前面提到安卓平台软件臃肿化问题严重,就是着了这方面的魔了。安卓平台没有严格的审核,也没有细密的权限控制系统,入门门槛低,开发者可以放开手脚干。面对完全不稀缺的资源,恐怕懂得珍惜的人不多吧。于是,一堆狂吃硬件资源的安卓App诞生了。


  软件臃肿并非无药可救。对于安卓系统的臃肿,Google也痛定思痛,开始在优化上下了血本,例如安卓4.4。首先,Google斥巨资2300万美元收购了法国雷恩的一家创业公司Flexycore,这是一家专注安卓优化的公司。然后在安卓4.4中,Google启动了“Project Svelte”(瘦身计划),系统内存需求、运算量峰值大大减少。此外,针对安卓App效率低下问题,Google不再完全依赖Dalvik虚拟机,启动了全新的ART机制,App运行速度大幅攀升。
  安卓4.4的努力效果拔群,有人将安卓4.4移植到了仅有512M RAM和单核CPU的Nexus S中,发现流畅度惊人,符合Google官方声称的“安卓4.4可以流畅运行于512M RAM设备”的宣传。


那为何软件臃肿现象无法停息?

  从安卓的例子可以看出,软件臃肿化并不是无药可救,但为何人们没有把注意力放在优化上?我们可以先来看看从来不会发生软件臃肿化的游戏机平台。游戏机平台的寿命长得惊人,动不动五年以上乃至再战十年(这一点曾让我无比惊讶)。随着时间的冲刷,游戏机上的游戏优化效果甚至会越来越好。06年发布的PS3至今仍可玩到GTA5、Crysis3等最新大作(虽然效果是差了点),06年的普通PC现在还能干什么?

  游戏机平台非常封闭,而且在长久的生命周期内硬件性能稳定得接近水平线。对于开发者而言,这一方面迫于严格的审核,必须对游戏成品精益求精,你不能乱来,最多也就搞搞内购;另一方面,稳定不变的硬件利于庖丁解牛,每一份性能该用在什么地方,会越来越了然于胸。游戏机能够在悠长的生命周期内由始至终高效发挥机能,绝缘软件臃肿化,和其独特的平台生态密切相关。

  再回头看看频繁更新的电脑手机,压根没法为开发者提供稳定不变的开发环境,软件应用不得不尾随进化神速的硬件平台更新;同时,就算是审核以严格著称的iOS平台,苛刻程度也没法和游戏机平台相比,更别提门洞大开的Windows和安卓了。微软和Google自然坐拥能够在时代大潮中淡定观望,慢慢打磨代码的人力财力,放长线钓大鱼;但对于更多开发者来说,跟上平台更新的狂潮,用更多手段掌控用户,获取短期利益,才是更好的赚钱大法。至于软件肿不肿……神优化又能怎样?(最没良心的“负优化”:利益驱动)。


  不难发现,更迭越迅速的平台(移动端、PC端等),越容易发生软件臃肿化现象。安卓的应用比iOS更臃肿,而移动平台比桌面平台更臃肿,五年前的PC还能顶用(但已经卡的不行了),五年前的智能手机已成“功能机”。摩尔定律作用越明显,安迪-比尔定律的效用也就更大,想利用摩尔定律占便宜的歇歇吧。
  在可预见的未来内,软件臃肿化依然不会停下脚步。作为一名用户,还是希望开发商们能够多对用户体验方面用点心,人们更希望用上“神优化”,运行速度更快的电脑、手机。

你可能感兴趣的:(介绍)