針對C 語言特性的效能優化checklist

2021-08-14 19:54:00 字數 782 閱讀 8101

系列文章導航:《

新的職業目標,以及c++效能優化》

針對c++語言特性的效能優化checklist

(1)盡量使用棧記憶體,較少使用堆記憶體。

(2)將堆記憶體池化。

(3)函式引數使用const&或&傳遞類物件。

(4)短小的函式巨集化或inline化。

(5)將類成員變數的初始化放在初始化列表中。尤其是類中含有的物件的初始化。

(6)嚴禁使用類成員變數互相初始化。

(7)利用給建構函式加explicit來阻止編譯器進行隱式的建構函式轉換。

(8)避免或減少物件的構造和銷毀。

(9)避免建立不必要的物件。避免編譯器生成的臨時物件。在c++11及以後版本中可以使用右值引用對臨時物件進行優化。

(10)盡量將非內建型別的物件延遲到已經確切知道其有效狀態時定義或建立。這樣可以減少臨時物件的生成。即建議這樣寫:

object r = a + b;

而不建議這樣寫:

object r;

/*...不使用r的**段...*/

r = a + b;

這裡有個前提是在r = a + b;之前沒有用到r,因而不必提前生成。

(11)盡量使用a += b;而避免使用 a = a + b;。

(12)對於非內建型別,在保證語義前提下,優先使用++i;避免使用i++;。

(13)如果函式體較大,不要使用內聯。

(14)使用智慧型指標。(如果可能)

(15)記憶體池增加自動伸縮機制。

(16)給頻繁建立和銷毀的物件應用記憶體池。

針對低網速的效能優化

此文已由作者吳維偉授權網易雲社群發布。在過去的一段時間,隊友在效能優化方面做了很多任務作。我現在在這裡默默總結,希望能夠追上隊友的腳步 此次優化主要針對的是漫畫手機站。相比於pc端的網路,移動端的網路環境有著自己的特點 網路不穩定,低網速的情況出現的比較頻繁。此次優化的目的是為了讓使用者在低網速的情...

C 語言特性效能分析

c 語言特性效能分析 c 語言特性引起效能方面的問題主要有 1 缺頁 涉及記憶體分配 2 從堆中動態申請和釋放記憶體 3 複雜物件的建立和銷毀 4 函式呼叫開銷 動態例子 object obj new object delete obj 繼續使用 指標obj是乙個區域性變數,在棧中分配。delete...

C 語言特性中的效能分析

這是一本關於c 效能優化的書,比較不錯,叫 c 應用程式效能優化 第2版 c 語言特性中的效能分析 大多數開發人員通常都有這個觀點,即組合語言和c語言適合用來編寫對效能要求非常高的程式。而c 語言的主要應用範圍是編寫複雜度非常高,但是對 效能要求不是那麼嚴格的程式。因為在大多數人看來,c 語言相對前...