对于“负优化”,大家都谈论了很多。显卡玩家谈论“负优化”,谈的是氢弹变原子弹,新驱动一出老卡性能不升反降;手机玩家谈论“负优化”,谈的是新系统推送天地灭,iPhone瞬间卡得像塞班。没错,在这个高速发展的信息时代,新软件新技术层出不穷,然而这些新事物带给用户的,却并不一定是更好的体验。软件、系统、驱动等等,新版比老版坑爹的情况,似乎并不是都市传说。
“负优化”现象真的存在吗?如果真的有,为什么开发者会如此喂屎?今天,就让我们来谈谈“负优化”的话题吧。
新软件不可避免“负优化”:安迪-比尔定律
按理来说,新产品需要有所优化,比旧产品的用户体验更好,消费者才会买单,但新软件比旧软件更慢更卡的现象,却层出不穷。远有Windows Vista肆虐用户内存惨案,近有iOS新系统狂杀App后台悲剧,新版软件对比旧版,体验还真不一定更好。
尽管苹果软硬件结合出色,但新版的iOS在性能方面往往是“负优化”
为什么会变成这样呢?新版软件带来了更漂亮的界面和更强大的功能,两者结合在一起,本应带来更好的用户体验;沉浸在全新用户体验的美好时光,本来已经触手可及,然而,为什么会变成这样?这就不得不提到闻名业界的“安迪-比尔定律”。
所谓安迪-比尔定律,安迪指的是Intel前CEO安迪-鲁夫,比尔则是大家都知道的比尔-盖茨。这条定律可是把这两位IT大佬狠狠黑了一把啊。
安迪-比尔定律的含义就是,安迪给啥,比尔拿啥;Intel产多猛的硬件,微软会用越来越臃肿的系统和软件统统吃掉增长的硬件性能。虽然这定律说的是Intel和微软,但套在其他软硬件厂商身上,也没什么违和感。安迪-比尔定律,实质上所描述的,就是软件臃肿化的问题。
无论是新软件更漂亮的界面,还是更强劲的功能,都是需要更强大的硬件作为基础的,总不能要求奔腾MMX能跑得动Win系统的Aero特效。摩尔定律让“芯片每18个月性能提高一倍,价格减半”,但安迪-比尔定律足以让摩尔定律无功而返。而如果你的钱包没有跟上摩尔定律的增长,没更换新硬件,就难以享受到新软件带来的快感,安迪-比尔定律作用下,新软件也就变成了“负优化”。
QQ的功能和界面都和十几年前不可同日而语,硬件需要也翻天覆地
安迪-比尔定律还有一个特点,那就是摩尔定律作用越明显、更迭越迅速的平台,越容易发生软件臃肿化现象。有个好的反例就是游戏机平台,游戏机的硬件升级极慢,数年都不换,而游戏对硬件的要求,却没有水涨船高,甚至还出现越后期的游戏,对硬件的优化越好的情况。这主要是因为封闭而稳定的平台,有利于开发者深耕细作。而一年一换甚至半年一换的手机,压根没法做到这点,软件应用不得不尾随进化神速的硬件平台更新,优化效果难以保证,也是理所当然的了。
移动平台进化速度最快,所以“负优化”也是最明显的,App和系统都普遍越来越卡
简单来说,为了充分利用新硬件的性能,软件开发商会想办法在软件中塞入更多的特性功能,而这些东西,对老硬件却是不友好的。破除安迪-比尔定律带来的“负优化”,唯一之道就是钱包君,大家努力赚钱吧。
开发疏忽造成的“负优化”:不上心
虽说因为安迪-比尔定律,软件的“负优化”发展几乎是必然的,但在历史的洪流中,也有人为过失造成的翻船。一些坑爹的“负优化”,完全是自作自受,别想把锅甩到“大势所趋”身上。这往往是因为开发者的能力有限或者疏忽所造成的,下面就举一些例子,大家可以感受感受。
◆Android音频架构
长久以来,在机友中流传这这样一个说法:Android手机的音质远不如iOS。事实是否真的如此?在大多数情况下,这种说法的确是成立的。原因很简单,Google对Android音频部分不上心,一些不当设计,造成了Android音质的“负优化”。
在Android 2.X时代,在音质上存在一个非常严重的SRC问题。所谓的SRC问题,指的是音频采样率重采样,例如采样率44.1kHz的音频被SRC到48kHz。这种非整数倍的SRC,会造成音质损失。在Android 2.X时代,Android系统会把48kHz的音频强制转换到44.1kHz,之后,高通芯片又会把44.1kHz强制SRC到48kHz输出,两次非整数倍的SRC后,音质惨不忍睹,这就是为何高通 Android会造成音质惨案的原因。
非整数倍的SRC会对原始波形造成破坏,损坏音质
这个问题是否可以避免?其实通过对底层音频驱动的修改,是可以解决问题的。但是,Google和高通并没有采取正确的解决方案。Google和高通为了解决音质劣化的问题,所推出的新方案并不是根据原始音频自动切换输出采样率,而是使用高精度算法进行SRC。在高通的QRD方案中,使用高通芯片的Android系统音频会强制SRC到48kHz,SRC的新算法效果不错,和之前比,音质的确有所进步。
但是,这并没有从根本上解决问题,无论非整数倍的SRC多么高精度,仍不可避免地会带来音质劣化。同时,高精度的SRC算法对硬件也有很高的需求,这造成了一些手机放歌卡顿、发热、耗电甚至爆音。这些负面影响,在Google自己的Nexus手机上就有出现,系统资源吃紧的时候,体验比之前还更差。
现在很多国产手机打Hifi的口号,Hifi与否先不说,但它们当中的确很多都解决了SRC
那么问题如何彻底解决?其实第三方手机厂商,已经交出了答卷——只要输出正确的采样率、不进行SRC即可。很多手机厂商,特别是国内厂商例如VIVO、魅族、小米等等厂商都解决了SRC问题,这甚至比Google改进SRC算法的时间更早。同时,XDA论坛也有野生的开发者给出了彻底解决SRC的方案。然而,Google官方的原生系统至今仍未彻底解决,Android L发布时就说优化了音质,但直到现在Android音质仍有缺陷。这种音质上的“负优化”,实在不应该出现。
◆游戏移植
为了让新玩家感受到老游戏的魅力,很多厂商都会把老游戏移植到新平台上。如果是考虑得比较妥当的开发商,会充分发掘新平台的优势,让老游戏展现得更有魅力。然而现实很残酷,更多的情况是,移植的游戏不仅没有被优化,而且还会出现“负优化”,能玩就不错了!
移植游戏被“负优化”的情况是很普遍的。例如光荣出品的《生或死5》,从游戏机上移植到了性能更强的PC平台,不仅画质下降,还砍掉了乳摇等卖点;又例如《忍龙2》,从PS3移植到PSV,画质降低可以理解,但无法完成游戏这点就难以理解了——这游戏有一个关卡是需要两个玩家合作(AI无法胜任)通过才能获得奖杯的,但PSV版取消了联机功能,获得奖杯成为了不可能的事情。这些“负优化”,显然是不应该出现的。
在游戏机平台上好评如潮的游戏,登陆PC后收获一堆差评,可想而知是怎样的“负优化”
移植游戏也不是没有优化得好的例子,例如《最后生还者》的PS4移植版,优化效果就有口皆碑。但是更多的游戏厂商只是想在新平台随便应付坑一笔钱,连冷饭都懒得炒好,导致了“负优化”。
◆杀软更新造成误杀
如果说上面的“负优化”只是影响使用,那么这种就真的可以算是破坏生产了。不少杀软在更新病毒库的时候,都出现过大面积的误杀,甚至会把系统文件杀掉,造成无法开机的情况!例如,Avast“2009-12-03-0”病毒库就出现过大面积误杀,McAfee的“DAT 5664”病毒库曾把系统文件当成病毒来杀导致蓝屏,诺顿也出现过类似情况。
不少杀软都闹过误杀乌龙,甚至导致蓝屏
病毒库更新本来是为了优化杀软的反病毒性能,但因此造成误杀事故,显然是测试不充分造成的。这种“负优化”,完全不该发生。
除了上文的例子,还有很多因为人为疏忽造成的“负优化”,这里就不一一举例了。这些“负优化”,有时候用户都知道该如何解决,但厂商就是不用心,没动作,非常气人。
最没良心的“负优化”:利益驱动
如果说前面因为人为疏忽造成的“负优化”只是气人,那么下面要说的因为利益驱动而故意造成的“负优化”,简直就是犯罪了。现在的风气非常不好,一些开发商为了眼前的利益,拼命把应用软件做得流氓,软件变流氓的同时,自然而然也带来了“负优化”。
不知道从什么时候开始,各种软件突然变得很喜欢把奇怪的东西塞进自己里面。一个好好的聊天软件,突然就多出了新闻浏览安全杀毒等功能;一个好好的浏览器,突然就多出了安全杀毒社交聊天等功能;一个好好的杀毒软件,突然就多出了社交聊天新闻浏览等功能。平时装三个软件可以得到三种功能,现在装三个软件得到九种功能,什么你说都是功能重复的?我听不到。总之就是一片顶三片,疗效特好,专治电脑性能过高!
聊天软件都自带一个应用商店,就问你怕不怕
这些行为的背后,是有利益驱动的。目前IT业界正处于从桌面端迁移到移动端、从本地迁移到云端的剧烈转型期,新兴的应用环境层出不穷。受业界大环境的影响,专精于某一项功能的软件变得越来越少,开发者们恨不得用一个安装包就统治了用户的使用环境,为前途和钱途铺好路。在这种指导思想下,打铁的也开始割麦子,煮饭的也开始负责炼钢,各种软件应用都长了一堆多余的肥膘。
此外,国内一些软件工作者为了业绩,也会不顾用户体验,在产品中加入“负优化”。例如,一些公司是以软件应用的活跃度来对员工进行业绩考评的,于是开发部门就会动小心思,就算软件不运行,也在后台自动唤醒,以增加活跃度,这无疑会增加系统资源消耗,造成“负优化”。总之,在目前的大环境下,杀了两三个流氓,还有无数后来人。恐怕,在比较长的一段时间内,流氓软件带来的“负优化”,仍会持续拜访各位的手机电脑。
Android平台上,随便查一个App的唤醒触发机制,都能吓死你
在游戏玩家中,还相传着一种驱动的负优化。例如,显卡厂商会用新驱动压制老显卡的性能,好让玩家们掏荷包购买新核弹。玩家们猜测,基于销售新显卡的利益考虑,厂商有用新驱动降低老显卡性能的动机。不过经过我们网站的实测,并非如此。下面是测试图表,大家一起来看看。
老显卡GTX780Ti在不同版本驱动下的性能表现
老显卡R9 290X在不同版本驱动下的性能表现
可以看到,无论是N卡A卡,新驱动在老卡上,都没有出现性能退步。更详细的内容,可以点击下面的文章查阅。
不过硬件驱动是不是真的一定没有负优化?也不尽然。有时候驱动更新也会带来一些问题,例如Win10就曾经自动更新N卡的驱动,导致出现故障。不过这些并不是基于利益的“负优化”,而是属于开发疏忽。实际上,修改驱动降低显卡性能也是需要人力时间成本的,而且很容易被揪到辫子,厂商应该还不至于去做这种下作的事情。
总结
“负优化”是否真的无法避免?根据“安迪-比尔定律”,从长远来看,软件对硬件的需求的确是节节上升的
。但是,也并不是没有新版比旧版优化得更好的软件,例如从Android 5到Android 7,从Vista到Win7,新版系统的确更有效率。而由于开发疏忽乃至利益驱动造成的“负优化”,要解决更是不存在技术上的问题。希望开发商能够多多为用户体验考虑,让产品少出现一些“负优化”吧。
文章出处:PCOnline