華文網

手機性能翻倍還是會卡?原因來自20年前的陰謀

“微處理器的性能每隔18個月提高一倍,或價格下降一半”——這就是大家都心知肚明的“摩爾定律”。雖然前兩年桌面PC市場的表現一度讓人質疑該定律的有效性,但在智慧手機市場上,

公認的硬體進化速度已經超過了18個月翻一番的程度。

舉例而言,2014年春季,我們還在歡呼四核心、32位元的驍龍801性能再創新高;僅僅半年之後,八核心64位的驍龍810就將處理器的性能提升了70%;而再過了一年,“發燒”的810又被820取代麼,性能直接翻了一番。換句話說,

在差不多18個月的時間裡,旗艦手機處理器的性能就提高了2.4倍!

然而,相信大家都有這麼一種感覺:手機更新換代這麼快,跑分確實是大幅提高了。但是實際使用中並不會覺得反應速度有明顯的改善,而且隨著時間推移幾乎必然是越用越卡,最後還是不得不換手機才能解決問題,這難道是某種“陰謀”在作祟?

別說,還真有這麼一個“陰謀論”在國外流傳了許多年了,它的名字叫做“安迪·比爾定律”,簡單來說,就是軟體的更新換代,永遠會“吞噬”掉硬體進步帶來的速度提高,甚至於使得硬體體驗加速落伍。

“安迪·比爾”並非是一個人名,而是指的原英特爾公司 CEO 安迪·格魯夫(Andy Grove),比爾就是微軟的創始人比爾·蓋茨——美國的IT業界曾經流傳這樣一句話“What Andy gives, Bill takes away(比爾拿走了安迪所給的一切)”,

形容的正是PC界知名的“Wintel聯盟”。

英特爾每年推出換代的處理器,然後被更新之後的Windows系統或其應用軟體將速度“重新拖慢”——周而復始,用戶就有了更換電腦的動力——這種曾經的“陰謀論”如今似乎正在手機上重演。

Android 2.0系統引入了對3D加速的支援,

一批早期的3D手遊開始出現,同時也宣告著一大批沒有集成GPU的手機主控從此作古;Android 2.2系統開始支援多核心,於是“核戰”正式拉開序幕,同時也意味著聯發科的崛起;Android 5.0系統轉向64位元核心,結果才剛面世不到一個月的驍龍805主控立刻“退休”,810新旗艦接任……就連一向被認為優化得當,流暢度爆表的蘋果iPhone,只要經歷過三次系統大版本更新,都會卡的不像樣子,以至於坊間有蘋果“負優化”老機型的傳言。

那麼……問題就來了:這些吃資源吃到爆炸的遊戲、軟體,還有不斷提高硬體需求標準的作業系統,真的是為了讓我們被迫更換手機,從而維持硬體銷量麼?

對此,比爾·蓋茨本人曾多次表示,現在的應用程式在執行效率、空間佔用等各方面確實不如過去的水準了。他親自寫的BASIC程式設計工具只有幾十K大小,但是現在一套.Net工具就要幾百兆——這其中當然有可以優化的空間。當然,我們知道微軟現在的.NET 比幾十年前的 BASIC 功能要強的多,但是否強了一萬倍,恐怕沒有人這麼認為。換句話說,現在的軟體發展人員在代碼水準、對位元組精打細算的認真程度上,確實退步明顯。

這一方面和電腦技術的大環境有關:過去的電腦記憶體最大只有640K,處理器性能低的可憐,所以程式師必須仔細推敲每一個位元組的代碼,用艱深難懂但是執行效率高的組合語言寫程式。而現在的電腦性能越來越高,程式師們即使不去刻意優化代碼,也不用擔心寫出來的軟體電腦帶不動……再加上組合語言運行效率極高,但是編寫效率極低,遭到“拋棄”是理所當然的。

另一方面來說,由於人工成本提高,再加上消費者和軟體公司對於“大量產出”的需求,程式師們傾向于依賴圖形化、自動化的程式設計和優化工具——Java的程式設計是那麼簡單,但它的運行效率遠低於C++、C語言、彙編……因此,即使是實現相同的功能,今天的程式師寫出的程式必然比蓋茨那個時代的運行效率更低、佔用資源更多。

但是,不可否認的是,造成這種現象的源頭,其實正是電腦、智慧手機消費群體本身——幾十年前的PC用戶都能看懂BASIC代碼,熟練地使用著DOS系統敲打著命令列。現在你要是給一個Android手機用戶裝上命令列模擬器,告訴他“你可以自行敲打命令來實現手機的各種功能,這樣執行效率很高還很省電”——他會不會打死你?

當前,如魅族Flyme系統內置的“One Mind”後臺調度引擎、Google Nexus手機的“HDR+”多幀合成拍照模式、三星S8加入的Bixby人工智慧助手……它們對於手機硬體的需求都是巨大的,但是正因為有了這些“複雜”的程式,你的手機應用開啟可以更快、拍照可以更清晰、還可以通過說話和拍照來實現各種智慧協助工具……這些特性放在過去的機型上,是無法實現的。

更不要說大型高畫質手遊帶來的娛樂體驗、部分手機連接顯示器之後的“電腦模式”如何實現了生產力的飛躍、還有即將迎來體驗革命的移動VR、AR……沒有先進的硬體規格、沒有人性化的圖形介面、沒有複雜的現代化系統和應用軟體,這些都是無法實現的。

所以說——無論是手機廠商、晶片供應商還是寫系統、寫軟體的程式師們,誰都沒有在“坑”你。只是你自己變得更懶、更貪心了:為了讓手機用起來功能更多、體驗更好,還是老老實實掏錢買新款吧~

【本文圖片來自網路】

他親自寫的BASIC程式設計工具只有幾十K大小,但是現在一套.Net工具就要幾百兆——這其中當然有可以優化的空間。當然,我們知道微軟現在的.NET 比幾十年前的 BASIC 功能要強的多,但是否強了一萬倍,恐怕沒有人這麼認為。換句話說,現在的軟體發展人員在代碼水準、對位元組精打細算的認真程度上,確實退步明顯。

這一方面和電腦技術的大環境有關:過去的電腦記憶體最大只有640K,處理器性能低的可憐,所以程式師必須仔細推敲每一個位元組的代碼,用艱深難懂但是執行效率高的組合語言寫程式。而現在的電腦性能越來越高,程式師們即使不去刻意優化代碼,也不用擔心寫出來的軟體電腦帶不動……再加上組合語言運行效率極高,但是編寫效率極低,遭到“拋棄”是理所當然的。

另一方面來說,由於人工成本提高,再加上消費者和軟體公司對於“大量產出”的需求,程式師們傾向于依賴圖形化、自動化的程式設計和優化工具——Java的程式設計是那麼簡單,但它的運行效率遠低於C++、C語言、彙編……因此,即使是實現相同的功能,今天的程式師寫出的程式必然比蓋茨那個時代的運行效率更低、佔用資源更多。

但是,不可否認的是,造成這種現象的源頭,其實正是電腦、智慧手機消費群體本身——幾十年前的PC用戶都能看懂BASIC代碼,熟練地使用著DOS系統敲打著命令列。現在你要是給一個Android手機用戶裝上命令列模擬器,告訴他“你可以自行敲打命令來實現手機的各種功能,這樣執行效率很高還很省電”——他會不會打死你?

當前,如魅族Flyme系統內置的“One Mind”後臺調度引擎、Google Nexus手機的“HDR+”多幀合成拍照模式、三星S8加入的Bixby人工智慧助手……它們對於手機硬體的需求都是巨大的,但是正因為有了這些“複雜”的程式,你的手機應用開啟可以更快、拍照可以更清晰、還可以通過說話和拍照來實現各種智慧協助工具……這些特性放在過去的機型上,是無法實現的。

更不要說大型高畫質手遊帶來的娛樂體驗、部分手機連接顯示器之後的“電腦模式”如何實現了生產力的飛躍、還有即將迎來體驗革命的移動VR、AR……沒有先進的硬體規格、沒有人性化的圖形介面、沒有複雜的現代化系統和應用軟體,這些都是無法實現的。

所以說——無論是手機廠商、晶片供應商還是寫系統、寫軟體的程式師們,誰都沒有在“坑”你。只是你自己變得更懶、更貪心了:為了讓手機用起來功能更多、體驗更好,還是老老實實掏錢買新款吧~

【本文圖片來自網路】