日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > CPP開(kāi)發(fā)者
[導(dǎo)讀]隨著 C 項(xiàng)目的持續(xù)擴(kuò)大,編譯效率越來(lái)越是一個(gè)問(wèn)題了。想一想你每天花在這上面的時(shí)間,再乘以團(tuán)隊(duì)成員的個(gè)數(shù),是不是成本很高?

隨著 C 項(xiàng)目的持續(xù)擴(kuò)大,編譯效率越來(lái)越是一個(gè)問(wèn)題了。想一想你每天花在這上面的時(shí)間,再乘以團(tuán)隊(duì)成員的個(gè)數(shù),是不是成本很高?
那有沒(méi)有什么辦法,在不需要修改源碼,也不更換硬件的情況下提升效率呢?一起來(lái)看看下面這幾個(gè)方法,足以讓你的編譯速度飛起來(lái)。
先隨便下載一個(gè)第三方源碼,例如:spdlog,我們來(lái)測(cè)試一下整個(gè)編譯需要多久:

源碼很少,但卻用了 00:48,速度著實(shí)不給力,來(lái)優(yōu)化一下吧!
1啟用多核編譯
可以開(kāi)啟多核編譯來(lái)提高編譯速度,充分利用機(jī)器的性能來(lái)優(yōu)化編譯。
打開(kāi) Qt Creator,選擇【Kits】->【構(gòu)建套件(kit)】,在【Environment】處輸入“MAKEFLAGS=-j16”。
這是最便利的方式,一勞永逸,只需設(shè)置一次,后期所有使用 make 的構(gòu)建系統(tǒng)都會(huì)自動(dòng)啟用。

這里的數(shù)字大小,需根據(jù)電腦的 CPU 核心數(shù)和線程數(shù)來(lái)設(shè)置,假如是 8 核 16 線程,建議設(shè)置 16。
qmake 設(shè)置
如果只想應(yīng)用于某個(gè)特定項(xiàng)目,選擇【項(xiàng)目】->【構(gòu)建步驟】->【Make】,點(diǎn)擊右側(cè)的【詳情】按鈕,在【Parallel jobs】或者【Make arguments】處設(shè)置并行工作線程的個(gè)數(shù),這兩個(gè)效果是一樣的:

cmake 設(shè)置
和 qmake 類似,只不過(guò) cmake 的設(shè)置在【Tool arguments】處:

效果
設(shè)置完成之后,重新編譯一下:

優(yōu)化到了 00:10,怎么樣,提升了不少吧。
2使用 ccache 編譯器緩存
ccache(全稱:compiler cache)是一個(gè)編譯器緩存,該工具會(huì)高速緩存編譯生成的信息,并在編譯的特定部分使用高速緩存的信息,比如頭文件,這樣就節(jié)省了通常使用 cpp 解析這些信息所需要的時(shí)間。
安裝 ccache
要安裝 ccache,執(zhí)行以下命令:
$ sudo apt install ccache
qmake 設(shè)置
打開(kāi) .pro,添加以下配置,ccache 就可以工作了:
QMAKE_CXX = ccache $$QMAKE_CXX
從 Qt 5.9 開(kāi)始,有一個(gè)更簡(jiǎn)單的方式:
load(ccache)
cmake 配置
在 CMakeLists.txt 中添加以下配置,將 ccache 作為編譯命令和鏈接命令的啟動(dòng)器:
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif(CCACHE_FOUND)
效果
配置完成之后,再來(lái)測(cè)試一下:

簡(jiǎn)直吊炸天 - 00:01,從最初的 48 秒優(yōu)化到了僅需 1 秒,效率提升了快 50 倍,這速度 6 的飛起!



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉