新聞中心
1.I/O的開銷的高昂的;
2.函數(shù)調(diào)用的開銷是要考慮的一個因素,因此應該將短小的、頻繁調(diào)用的函數(shù)內(nèi)聯(lián);
3.復制對象的開銷是高昂的,最好選擇傳遞引用;
4.對象定義會出發(fā)隱形地執(zhí)行構造函數(shù)和析構函數(shù)。

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