二、構(gòu)造函數(shù)和析構(gòu)函數(shù)
1.堆內(nèi)存的分配與釋放代價(jià)是高昂的;
2.去掉不必要的冗余對象,不管是類中的成員變量還是函數(shù)的參數(shù),都會帶來不必要的構(gòu)造和析構(gòu)開銷;
3.有些基類沒有成員變量也沒有提供接口的作用,這種基類屬于無意義的基類,應(yīng)該去掉;
4.去掉多余的構(gòu)造開銷。
三、虛函數(shù)
1.只能在運(yùn)行期間解析的虛函數(shù)調(diào)用是不允許使用內(nèi)聯(lián)的;
2.模版比繼承提供更好的性能,但是編譯錯(cuò)誤難以調(diào)試,同時(shí)c++不支持隱式接口。
四、返回值優(yōu)化(RVO)
1.無新內(nèi)容。
五、臨時(shí)對象
1.將構(gòu)造函數(shù)聲明為explicit,可以允許編譯器在幕后使用類型轉(zhuǎn)換;
2.臨時(shí)對象會以構(gòu)造函數(shù)和析構(gòu)函數(shù)的形式降低一半的性能;
3.如可能,盡量避免使用對象拷貝;
4.在<op>可能是"+、-、*"或者"/"的地方,使用<op>=運(yùn)算符可以消除臨時(shí)對象。
六、單線程內(nèi)存池
1.暫時(shí)忽略。
七、多線程內(nèi)存池
1.暫時(shí)忽略。
八、內(nèi)聯(lián)基礎(chǔ)
1.暫時(shí)忽略。
九、內(nèi)聯(lián)-站在性能的角度
1.暫時(shí)忽略。
十、內(nèi)聯(lián)技巧
1.暫時(shí)忽略。
十一、標(biāo)準(zhǔn)模板庫
1.無新內(nèi)容。
十二、引用計(jì)數(shù)
1.無新內(nèi)容。
十三、編碼優(yōu)化
1.預(yù)先計(jì)算;
2.提高常用路徑的速度,if (and1 && and2)以及if (or1 || or2)中;
3.緩式計(jì)算,將計(jì)算延遲到真正需要的時(shí)候;
4.體系結(jié)構(gòu),在經(jīng)常一起訪問兩個(gè)成員時(shí),最好讓他們處于統(tǒng)一緩存行中;
5.編譯器優(yōu)化,在release時(shí)開啟編譯器優(yōu)化。
十四、設(shè)計(jì)優(yōu)化
1.無新內(nèi)容。
十五、可擴(kuò)展性
1.在類中定義的時(shí)候,鎖應(yīng)該放置在最靠近它所保護(hù)的共享數(shù)據(jù)附近;
2.讀寫鎖會降低性能,但是能提高擴(kuò)展性;
3.把單一的任務(wù)分解為多個(gè)并發(fā)子任務(wù)。
十六、系統(tǒng)體系結(jié)構(gòu)相關(guān)話題
1.同步操作的開銷往往比異步操作大得多,但異步操作往往需要用輪詢來獲取結(jié)果,根據(jù)需要再進(jìn)行權(quán)衡;
2.對于要求響應(yīng)延遲最小的程序來說,同步多線程方案要比異步輪詢方案好,因?yàn)楫惒椒桨溉鄙偻ㄖ侄巍?/p>
分享名稱:<提高C++性能的編程技術(shù)>-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://jinyejixie.com/article42/dejihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容