跳至內容

優化 C++/簡介

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

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

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

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

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

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

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