现代CPU每秒数亿次计算,但是打开软件仍然没多快。
换个表达方式: 大量的计算时间被一些不明操作「浪费」掉了 。
这其实也是自然而然的事情。
不止是软件,涉及到 效率/成本 的行为,人们都会朝最简单省事的方向努力,肯定不是追求最节约的方式。这里举一些类比的栗子:
1、洗衣机
家用洗衣机一般是7kg~10kg的容量,那么只需要洗一件T恤时怎么办呢?
绝大多数人的选择——如果不急,就攒几件衣服一起洗;如果着急要洗,就只洗这一件。
那一件T恤用多少洗衣粉呢?如果半桶衣物用1大勺洗衣粉,1件T恤其实用一点点就够了。
但有多少人会花时间精力思考这个问题呢?不如就放半勺,搞定。
10kg的洗衣机,半勺洗衣粉,洗一件T恤。
没毛病。
一秒钟脑筋都不想费,就这某些人还嫌麻烦呢 :)
2、食品包装
一瓶可乐,有超过一半的成本在包装上面。如果每个人都能随身带一个杯子,超市卖散装可乐,能节约下来海量的金钱,而且还能极大减少塑料污染。
但事实上,所有人都觉得瓶装饮料是理所当然的。
看图说话。早上刚倒完垃圾。这是办公室一天的成果:
3、算力的浪费微不足道
我们已经有了每秒执行数亿次的CPU,干点啥呢?
首先,加点动画,桌面动效一定要好看。手机支持的主题越多,销量越好。
照片像素要高,一千万起步,一亿像素不嫌多。
发送图片,原图,20MB,发送。
然后对面就看了眼缩略图 :)
后台应用,记步数,推送,信息收集,该跑的都要跑。
其实用户端的浪费都是小儿科,最厉害的浪费在软件的研发阶段。
既然有了这么牛的CPU,要不要简化一下开发流程,提高开发效率?
当然好了。
可视化引擎,搞起。
做界面,拖一拖。代码尽量调用通用的库。别人做好的功能,抄过来改一改。
引用了一个10MB的库,就为了用其中一种控件。
不知道特殊事件什么时候触发?没关系,不行的话每100ms检查一次就可以了。
快速开发,能用就行。
一定不要因为优化耽误了开发进度,快速上线才是最重要的。
而且,从大局来说——软件优化的太好,会耽误硬件升级。
总而言之
现代社会就是在高速公路上狂奔,而且还要保持不断的加速度。
一切生产活动都要以效率为重。在极端强调效率的情况下,「浪费」显得理所当然。
所以,CPU的浪费简直是所有浪费中最温和的一种。