當前位置: 華文星空 > 知識

為什麽現代 CPU 每秒數億次計算,但是程式仍舊很卡?

2022-10-19知識

現代CPU每秒數億次計算,但是開啟軟件仍然沒多快。

換個表達方式: 大量的計算時間被一些不明操作「浪費」掉了

這其實也是自然而然的事情。

不止是軟件,涉及到 效率/成本 的行為,人們都會朝最簡單省事的方向努力,肯定不是追求最節約的方式。這裏舉一些類比的栗子:

1、洗衣機

家用洗衣機一般是7kg~10kg的容量,那麽只需要洗一件T恤時怎麽辦呢?

絕大多數人的選擇——如果不急,就攢幾件衣服一起洗;如果著急要洗,就只洗這一件。

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

但有多少人會花時間精力思考這個問題呢?不如就放半勺,搞定。

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

沒毛病。

一秒鐘腦筋都不想費,就這某些人還嫌麻煩呢 :)

2、食品包裝

一瓶可樂,有超過一半的成本在包裝上面。如果每個人都能隨身帶一個杯子,超市賣散裝可樂,能節約下來海量的金錢,而且還能極大減少塑膠汙染。

但事實上,所有人都覺得瓶裝飲料是理所當然的。

看圖說話。早上剛倒完垃圾。這是辦公室一天的成果:

3、算力的浪費微不足道

我們已經有了每秒執行數億次的CPU,幹點啥呢?

首先,加點動畫,桌面動效一定要好看。手機支持的主題越多,銷量越好。

照片像素要高,一千萬起步,一億像素不嫌多。

發送圖片,原圖,20MB,發送。

然後對面就看了眼縮圖 :)

後台套用,記步數,推播,資訊收集,該跑的都要跑。

其實使用者端的浪費都是小兒科,最厲害的浪費在軟件的研發階段。

既然有了這麽牛的CPU,要不要簡化一下開發流程,提高開發效率?

當然好了。

視覺化引擎,搞起。

做界面,拖一拖。程式碼盡量呼叫通用的庫。別人做好的功能,抄過來改一改。

參照了一個10MB的庫,就為了用其中一種控制項。

不知道特殊事件什麽時候觸發?沒關系,不行的話每100ms檢查一次就可以了。

快速開發,能用就行。

一定不要因為最佳化耽誤了開發進度,快速上線才是最重要的。

而且,從大局來說——軟件最佳化的太好,會耽誤硬件升級。

總而言之

現代社會就是在高速公路上狂奔,而且還要保持不斷的加速度。

一切生產活動都要以效率為重。在極端強調效率的情況下,「浪費」顯得理所當然。

所以,CPU的浪費簡直是所有浪費中最溫和的一種。