多核將引領軟件研發發生基礎性變化,特別對接下來幾年里那些面向一般應用、運行在PC和低端服務器上的應用軟件(在今天已經銷售出去的軟件里占有很大比例)而言。在這篇文章里,我想就多核為何突然對軟件產生重要影響,以及并發巨變如何影響我們和我們未來編寫軟件方式的問題展開討論。
我可以這么說:免費大餐已經結束一兩年了,但我們現在才開始意識到這個問題。
免費的性能大餐
業界存在一個有趣的現象:“安迪送,比爾取!盵譯注3]無論處理器性能提升多少,軟件都有辦法迅速吞噬。CPU速度十倍于前,軟件就有十倍于前的活要干(或者肆無忌憚猛增軟件的工作量,導致性能下降)。在過去幾十年里,由于CPU、內存和硬盤特別是CPU廠商強力推進主流系統向更新更快的方向發展,大多數軟件不做版本升級,甚至原封不動,就可輕松而持續地享受處理器性能提升的成果。盡管時鐘速度不是衡量系統性能的唯一和最好的標尺,但其重要意義不容忽視。我們見證了CPU的發展歷史:從500MHz到1GHz,然后再到2GHz,不斷提高。今天,主流計算機已經進入3GHz時代。
不過,有一個很關鍵的問題:這種提升模式什么時候會走到盡頭?盡管莫爾定律預言了歷史上的指數式增長,但我們很清楚指數式增長不可能永遠維持,因為硬件畢竟受物理極限約束;光速是不可能更快的[譯注4]。所以增長必然放緩,最后停滯。順便說明一點,莫爾定律的主要描述對象是晶體管集成密度,但在一些相關的領域,如時鐘速度方面,也出現了類似的指數式增長;甚至在別的領域有更快的增長速度,例如著名的數據存儲量爆炸。不過這些重要趨勢需要另一篇文章來分析了。
如果你是一個軟件開發人員,那么你可能一直在免費享受桌面計算機性能提升的大餐。某些操作會成為應用程序性能的瓶頸?“你過慮了”,我們對這樣的回答耳熟能詳,“未來處理器將更為強勁,而現在的應用程序速度倒是日益被非CPU吞吐量和內存速度因素扼殺,比如I/O、網絡和數據庫等等!闭娴氖沁@樣么?
要在過去,這的確沒錯。但在以后,就完全不對了。
我有兩個消息要告訴大家。第一個是好消息,處理器性能仍然會不斷提高。第二個則是壞消息,至少在短時間內,處理器性能的提升,不再能像以往那樣讓現在的應用程序繼續免費獲益。
文章來源于領測軟件測試網 http://www.kjueaiud.com/