現代CPU每秒數億次計算,但是開啟軟件仍然沒多快。
換個表達方式: 大量的計算時間被一些不明操作「浪費」掉了 。
這其實也是自然而然的事情。
不止是軟件,涉及到 效率/成本 的行為,人們都會朝最簡單省事的方向努力,肯定不是追求最節約的方式。這裏舉一些類比的栗子:
1、洗衣機
家用洗衣機一般是7kg~10kg的容量,那麽只需要洗一件T恤時怎麽辦呢?
絕大多數人的選擇——如果不急,就攢幾件衣服一起洗;如果著急要洗,就只洗這一件。
那一件T恤用多少洗衣粉呢?如果半桶衣物用1大勺洗衣粉,1件T恤其實用一點點就夠了。
但有多少人會花時間精力思考這個問題呢?不如就放半勺,搞定。
10kg的洗衣機,半勺洗衣粉,洗一件T恤。
沒毛病。
一秒鐘腦筋都不想費,就這某些人還嫌麻煩呢 :)
2、食品包裝
一瓶可樂,有超過一半的成本在包裝上面。如果每個人都能隨身帶一個杯子,超市賣散裝可樂,能節約下來海量的金錢,而且還能極大減少塑膠汙染。
但事實上,所有人都覺得瓶裝飲料是理所當然的。
看圖說話。早上剛倒完垃圾。這是辦公室一天的成果:
3、算力的浪費微不足道
我們已經有了每秒執行數億次的CPU,幹點啥呢?
首先,加點動畫,桌面動效一定要好看。手機支持的主題越多,銷量越好。
照片像素要高,一千萬起步,一億像素不嫌多。
發送圖片,原圖,20MB,發送。
然後對面就看了眼縮圖 :)
後台套用,記步數,推播,資訊收集,該跑的都要跑。
其實使用者端的浪費都是小兒科,最厲害的浪費在軟件的研發階段。
既然有了這麽牛的CPU,要不要簡化一下開發流程,提高開發效率?
當然好了。
視覺化引擎,搞起。
做界面,拖一拖。程式碼盡量呼叫通用的庫。別人做好的功能,抄過來改一改。
參照了一個10MB的庫,就為了用其中一種控制項。
不知道特殊事件什麽時候觸發?沒關系,不行的話每100ms檢查一次就可以了。
快速開發,能用就行。
一定不要因為最佳化耽誤了開發進度,快速上線才是最重要的。
而且,從大局來說——軟件最佳化的太好,會耽誤硬件升級。
總而言之
現代社會就是在高速公路上狂奔,而且還要保持不斷的加速度。
一切生產活動都要以效率為重。在極端強調效率的情況下,「浪費」顯得理所當然。
所以,CPU的浪費簡直是所有浪費中最溫和的一種。