二、構(gòu)造函數(shù)和析構(gòu)函數(shù)
1.堆內(nèi)存的分配與釋放代價是高昂的;
2.去掉不必要的冗余對象,不管是類中的成員變量還是函數(shù)的參數(shù),都會帶來不必要的構(gòu)造和析構(gòu)開銷;
3.有些基類沒有成員變量也沒有提供接口的作用,這種基類屬于無意義的基類,應(yīng)該去掉;
4.去掉多余的構(gòu)造開銷。
三、虛函數(shù)
1.只能在運行期間解析的虛函數(shù)調(diào)用是不允許使用內(nèi)聯(lián)的;
2.模版比繼承提供更好的性能,但是編譯錯誤難以調(diào)試,同時c++不支持隱式接口。
四、返回值優(yōu)化(RVO)
1.無新內(nèi)容。
五、臨時對象
1.將構(gòu)造函數(shù)聲明為explicit,可以允許編譯器在幕后使用類型轉(zhuǎn)換;
2.臨時對象會以構(gòu)造函數(shù)和析構(gòu)函數(shù)的形式降低一半的性能;
3.如可能,盡量避免使用對象拷貝;
4.在
六、單線程內(nèi)存池
1.暫時忽略。
七、多線程內(nèi)存池
1.暫時忽略。
八、內(nèi)聯(lián)基礎(chǔ)
1.暫時忽略。
九、內(nèi)聯(lián)-站在性能的角度
1.暫時忽略。
十、內(nèi)聯(lián)技巧
1.暫時忽略。
十一、標(biāo)準(zhǔn)模板庫
1.無新內(nèi)容。
十二、引用計數(shù)
1.無新內(nèi)容。
十三、編碼優(yōu)化
1.預(yù)先計算;
2.提高常用路徑的速度,if (and1 && and2)以及if (or1 || or2)中;
3.緩式計算,將計算延遲到真正需要的時候;
4.體系結(jié)構(gòu),在經(jīng)常一起訪問兩個成員時,最好讓他們處于統(tǒng)一緩存行中;
5.編譯器優(yōu)化,在release時開啟編譯器優(yōu)化。
十四、設(shè)計優(yōu)化
1.無新內(nèi)容。
十五、可擴展性
1.在類中定義的時候,鎖應(yīng)該放置在最靠近它所保護的共享數(shù)據(jù)附近;
2.讀寫鎖會降低性能,但是能提高擴展性;
3.把單一的任務(wù)分解為多個并發(fā)子任務(wù)。
十六、系統(tǒng)體系結(jié)構(gòu)相關(guān)話題
1.同步操作的開銷往往比異步操作大得多,但異步操作往往需要用輪詢來獲取結(jié)果,根據(jù)需要再進行權(quán)衡;
2.對于要求響應(yīng)延遲最小的程序來說,同步多線程方案要比異步輪詢方案好,因為異步方案缺少通知手段。