跳至內容

優化 C++/簡介

維基教科書,自由的教學讀本

選擇 C++ 而非更簡單的高級程式語言的主要原因之一在於,C++ 允許開發複雜的軟件,並能比使用其他語言更高效地利用硬件資源。該語言本身並不能自動保證生成高效的代碼,但它提供了一套工具集,幫助程式設計師追求效率。編寫隨意的 C++ 代碼可能並不比用更高級語言實現的相同算法更高效,但一位精通 C++ 的優秀程式設計師能夠編寫出從一開始就高效的軟件,並進一步優化代碼。本書將提供編寫高效代碼以及優化現有軟件的技術。

通常,對於一個編程問題,並不存在一個適用於所有情況的最優解決方案。因此,優化通常並不意味着編寫出性能最優的軟件;相反,它意味着漸進式地改變(重構)軟件以提升其性能,使其趨近於最優狀態。

這種優化要求軟件原始碼的編寫方式足夠模塊化,以便能夠將性能關鍵部分分離出來。在代碼編寫得當的前提下,優化就需要運用工具、庫、知識以及時間去修改這些部分,從而提高軟件整體的執行速度。

如今,許多優化工作已由編譯器完成,不再需要程式設計師承擔。本書討論的是更高層次的優化技術,這些是當前編譯器尚無法完成的。

本書面向的讀者是那些已經熟悉 C++ 語言,並希望使用它來開發高性能應用軟件或軟件庫的人。

書中介紹的幾乎所有優化技術都是平台無關的,因此很少會提及特定的作業系統、處理器架構或編譯器。然而,在特定的作業系統/處理器/編譯器組合下,某些介紹的技術可能效果不佳或完全不適用。