- 現代CPU性能分析與優化
- (美)丹尼斯·巴赫瓦洛夫
- 784字
- 2023-11-09 19:34:48
第1章 導讀
人們常說:“性能為王。”十年前如此,當然現在也未改變。根據文獻(Dom,2017),2017年全球每天都在制造250億億[1]字節的數據,而根據文獻(Sta,2018)的預測,這個數字每年還要增大25%。在日益以數據為中心的世界中,信息交換需求的增長促進了對更快的硬件和軟件的需求。公平地講,數據的增長不但對算力也對網絡和存儲系統提出了要求。
在PC時代[2],開發者通常在操作系統上直接編程,可能用到介于應用程序和操作系統之間的一些庫函數。而在云計算時代,軟件棧層次變得更深、更復雜,大部分開發者接觸的軟件棧頂層離硬件層更為遙遠。棧的中間層把底層硬件做了抽象,這樣當新的計算負荷出現時可以采用新型的計算加速單元。然而,這種演進的負面影響是現代應用程序開發者對運行他們軟件的實際硬件不甚了解。
得益于摩爾定律,過去幾十年軟件開發者一直在“搭便車”。一些軟件供應商更愿意等待新一代的硬件平臺來提升應用程序的執行速度,而不是花費人力來優化代碼。在圖1中,我們可以看到單線程性能[3]的增長速度正在放緩。

圖1 微處理器40年趨勢數據(?圖片來自K.Rupp的karlrupp.net網站)
圖中到2010年的原始數據由M.Horowitz、F.Labonte、O.Shacham、K.Olukotun、L.Hammond和C.Batten收集和繪制,圖中2010年到2015年的數據由K.Rupp收集
當每代的新硬件不再顯著提升性能(Leiserson et al.,2020)時,我們就必須更加關注代碼的運行速度。在尋找性能提升的方法時,開發者不應該依賴硬件,而是應該優化應用程序的代碼。
“當今的軟件效率非常低,因此再次成為軟件程序員構建真正優化技能的黃金時代。”
—Marc Andreessen,美國企業家和投資人(a16z Podcast,2020)
個人經驗 在Intel工作時,我經常聽到這樣的故事:當客戶遇到應用程序執行慢的問題時,他們會立刻下意識地抱怨Intel的CPU太慢了。但Intel派出性能專家并跟客戶一起調優應用程序后,應用程序的執行速度提升5倍甚至10倍的案例并不少見。
獲得高水平性能的過程充滿了挑戰,通常需要付出大量的努力,希望本書提供的一系列工具能幫助你實現較高的性能。
- C++面向對象程序設計(第三版)
- WildFly:New Features
- Python快樂編程:人工智能深度學習基礎
- 移動UI設計(微課版)
- TensorFlow Lite移動端深度學習
- Python for Secret Agents:Volume II
- 控糖控脂健康餐
- 深入淺出Spring Boot 2.x
- C/C++算法從菜鳥到達人
- Programming ArcGIS 10.1 with Python Cookbook
- 深入淺出Windows API程序設計:編程基礎篇
- JSP開發案例教程
- 利用Python進行數據分析
- Procedural Content Generation for C++ Game Development
- Java EE Web應用開發基礎