当前位置: 华文星空 > 知识

为什么现代 CPU 每秒数亿次计算,但是程序仍旧很卡?

2022-10-19知识

现代CPU每秒数亿次计算,但是打开软件仍然没多快。

换个表达方式: 大量的计算时间被一些不明操作「浪费」掉了

这其实也是自然而然的事情。

不止是软件,涉及到 效率/成本 的行为,人们都会朝最简单省事的方向努力,肯定不是追求最节约的方式。这里举一些类比的栗子:

1、洗衣机

家用洗衣机一般是7kg~10kg的容量,那么只需要洗一件T恤时怎么办呢?

绝大多数人的选择——如果不急,就攒几件衣服一起洗;如果着急要洗,就只洗这一件。

那一件T恤用多少洗衣粉呢?如果半桶衣物用1大勺洗衣粉,1件T恤其实用一点点就够了。

但有多少人会花时间精力思考这个问题呢?不如就放半勺,搞定。

10kg的洗衣机,半勺洗衣粉,洗一件T恤。

没毛病。

一秒钟脑筋都不想费,就这某些人还嫌麻烦呢 :)

2、食品包装

一瓶可乐,有超过一半的成本在包装上面。如果每个人都能随身带一个杯子,超市卖散装可乐,能节约下来海量的金钱,而且还能极大减少塑料污染。

但事实上,所有人都觉得瓶装饮料是理所当然的。

看图说话。早上刚倒完垃圾。这是办公室一天的成果:

3、算力的浪费微不足道

我们已经有了每秒执行数亿次的CPU,干点啥呢?

首先,加点动画,桌面动效一定要好看。手机支持的主题越多,销量越好。

照片像素要高,一千万起步,一亿像素不嫌多。

发送图片,原图,20MB,发送。

然后对面就看了眼缩略图 :)

后台应用,记步数,推送,信息收集,该跑的都要跑。

其实用户端的浪费都是小儿科,最厉害的浪费在软件的研发阶段。

既然有了这么牛的CPU,要不要简化一下开发流程,提高开发效率?

当然好了。

可视化引擎,搞起。

做界面,拖一拖。代码尽量调用通用的库。别人做好的功能,抄过来改一改。

引用了一个10MB的库,就为了用其中一种控件。

不知道特殊事件什么时候触发?没关系,不行的话每100ms检查一次就可以了。

快速开发,能用就行。

一定不要因为优化耽误了开发进度,快速上线才是最重要的。

而且,从大局来说——软件优化的太好,会耽误硬件升级。

总而言之

现代社会就是在高速公路上狂奔,而且还要保持不断的加速度。

一切生产活动都要以效率为重。在极端强调效率的情况下,「浪费」显得理所当然。

所以,CPU的浪费简直是所有浪费中最温和的一种。