国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C/C++ - 總結(jié)c++性能優(yōu)化策略

總結(jié)c++性能優(yōu)化策略

2021-06-22 13:51D_Guco C/C++

在本篇文章中小編給大家總結(jié)了關(guān)于C++的性能優(yōu)化策略的相關(guān)知識點,對此有興趣的朋友可以參考學(xué)習(xí)下。

1 關(guān)于繼承:不可否認(rèn)良好的抽象設(shè)計可以讓程序更清晰,代碼更看起來更好,但是她也是有損失的,在繼承體系中子類的創(chuàng)建會調(diào)用父類的構(gòu)造函數(shù),銷毀時會調(diào)用父類的析構(gòu)函數(shù),這種消耗會隨著繼承的深度直線上升,所以不要過度的抽象和繼承。

2 對象的復(fù)合:對象的復(fù)合和繼承很相似,當(dāng)一個對象包含其他對象構(gòu)造時也會引起額外的構(gòu)造。關(guān)于這點可能會有很多人不解,認(rèn)為這是不可避免的,舉個例子,你的一個對象中用到數(shù)組和字符串,你是選擇string和vector還是char* 和c系的數(shù)組呢,如果沒有用到c++stl庫提供的相關(guān)的高級用法,建議選擇后者。

3 構(gòu)造函數(shù):盡量用參數(shù)列表初始化代替參數(shù),避免值傳遞初始化。

4 變量延時定義:從c系轉(zhuǎn)過來的仍保留著c的習(xí)慣,在函數(shù)第一行先把所有用到的變量都定義好,但是c是沒有運(yùn)行時的消耗的,對于c++時不一樣的,對于c++對象的構(gòu)造和銷毀時有消耗的,如果有大量的對象只在某個if條件的一個分支中出現(xiàn),那就會有50%的情況這些消耗是可以避免的。對于這點在一個類中也是一樣的,如果成員中有成員只在某個時刻能用,就用指針代替,在構(gòu)造對象時初始化成空指針,避免構(gòu)造時調(diào)用他的構(gòu)造函數(shù)。

5 虛函數(shù):虛函數(shù)的底層實現(xiàn)是通過一個虛函數(shù)表來實現(xiàn)的,因此有虛函數(shù)的類構(gòu)造時必須先初始化虛函數(shù)表,函數(shù)調(diào)用時也必須先找到虛函數(shù)表,然后通過指針偏移找到相應(yīng)的函數(shù),并且如果虛繼承的存在會進(jìn)一步增長這個過程,它是有運(yùn)行時消耗的,所以避免濫用虛函數(shù)和虛繼承,盡可能的用模版設(shè)計來代替虛繼承把運(yùn)行時的消耗提前到編譯期。

6 返回值優(yōu)化 雖然c++編譯器會選擇性的進(jìn)行RVO優(yōu)化但是不是強(qiáng)制的,當(dāng)函數(shù)有多個返回語句并且返回不通名稱的對象,函數(shù)過于復(fù)雜,返回對象沒有定義拷貝構(gòu)造函數(shù)時,rvo優(yōu)化是不會執(zhí)行的,所以當(dāng)函數(shù)返回一個很大的對象時在不確定rvo優(yōu)化會執(zhí)行時,盡量避免值傳遞。

7 變量的定義:在定義變量時盡量避免類型的不匹配造成臨時變量的產(chǎn)生。

8 內(nèi)存管理:c++內(nèi)存管理的大權(quán)由我們自己掌握,對于項目中要頻繁申請和釋放的對象建議用簡單的內(nèi)存池來管理,可以大大的降低頻繁申請和釋放內(nèi)存帶來的消耗。

9 善用內(nèi)聯(lián):內(nèi)聯(lián)函數(shù)不僅僅是簡單的函數(shù)調(diào)用似的優(yōu)化,他還有一個最大的優(yōu)點就是,可以讓編譯期進(jìn)行進(jìn)行邊界代碼的運(yùn)行環(huán)境優(yōu)化,內(nèi)聯(lián)把代碼拷貝到執(zhí)行環(huán)境處避免了函數(shù)調(diào)用帶來的消耗,并且編譯期可以進(jìn)行正常的編譯優(yōu)化,而函數(shù)調(diào)用是不能實現(xiàn)的。

10 stl :記住一點stl不是唯一的選擇,有時候也不是最好的選擇,合理選擇stl善用stl算法。

11 緩存:對于多次使用的計算結(jié)果及時緩存,避免重復(fù)計算。

12 延時計算:對于不關(guān)心計算結(jié)果的計算過程盡量延時執(zhí)行或者異步去執(zhí)行。

13 多線程:盡可能的使用無鎖式多線程開發(fā),鎖是一個非常消耗性能的東西,保證數(shù)據(jù)同步的手段有很多,voalite,原子操作都可已實現(xiàn),如果迫不得已要盡量減少鎖的消耗,比如降低鎖的粒度,使用性能更高的鎖等等。

14 cpu緩存:合理的利用cpu cache可以極大的提高代碼的運(yùn)行效率,比如數(shù)組中以每列遍歷和每行遍歷的區(qū)別。當(dāng)然多線程環(huán)境下也要考慮它帶來的影響。

15 內(nèi)存對齊:在進(jìn)行網(wǎng)絡(luò)編程時,最好對網(wǎng)絡(luò)中傳送的數(shù)據(jù)快進(jìn)行內(nèi)存補(bǔ)齊,加快網(wǎng)絡(luò)數(shù)據(jù)的讀區(qū)速度。

16 函數(shù)參數(shù):用const引用代替值傳遞,如果函數(shù)參數(shù)過多,可以用對象來打包參數(shù),減少參數(shù)過多帶來的性能消耗。

17 算法: 盡可能的優(yōu)化你的算法。

18 其他優(yōu)化方案:位運(yùn)算代替乘除法,前綴運(yùn)算符代替后綴運(yùn)算等等。

原文鏈接:http://blog.csdn.net/D_Guco/article/details/75729259

延伸 · 閱讀

精彩推薦
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復(fù)制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++學(xué)習(xí)C++編程的必備軟件

    學(xué)習(xí)C++編程的必備軟件

    本文給大家分享的是作者在學(xué)習(xí)使用C++進(jìn)行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言實現(xiàn)電腦關(guān)機(jī)程序

    C語言實現(xiàn)電腦關(guān)機(jī)程序

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)電腦關(guān)機(jī)程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C/C++經(jīng)典實例之模擬計算器示例代碼

    C/C++經(jīng)典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關(guān)于C/C++經(jīng)典實例之模擬計算器的相關(guān)資料,文中通過示...

    jia150610152021-06-07
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內(nèi)存中的數(shù)據(jù)都是暫時的,當(dāng)程序結(jié)束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關(guān)于C語言中文件...

    針眼_6702022-01-24
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下...

    C語言教程網(wǎng)7342020-12-03
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 色综合99| 国产精品美女久久久久久久久久久 | a视频在线免费观看 | 中文字幕在线观看av | 一区二区视频在线观看 | 精品粉嫩超白一线天av | 国产在线高清 | www中文在线观看 | 日本免费一区二区三区四区 | 欧美一区二区三区在线观看视频 | 亚洲国产精品一区二区第一页 | 国产高清久久久 | 精品国产一区二区三区日日嗨 | www.you日本| av一区二区不卡 | 激情综合网五月婷婷 | 人人爽人人爽人人片av | 成人亚洲精品777777大片 | 亚洲精品中文字幕在线观看 | 久久av网站 | 亚洲精品一区久久久久久 | 一级黄色一级黄色 | 天天久久 | 国产精品久久久久久久久 | 激情视频网 | 精品久久一二三区 | 欧美日韩精品免费 | 亚洲一级淫片 | 黄色a级网站 | 精品国产视频 | 美日韩精品视频 | 国产黄色美女 | 久草在线免费资源 | 成人免费小视频 | 欧美日韩在线一区二区 | 国产欧美一二三区在线粉嫩 | 中文字幕在线免费看 | 国产中文字幕在线 | 国产综合在线视频 | 欧美日韩国产一区二区三区 | 精品国产91亚洲一区二区三区www |