做外貿(mào)的網(wǎng)站怎么建立武漢seo網(wǎng)站排名優(yōu)化
💌 所屬專欄:【鴻蒙系統(tǒng)】
😀 作??者:我是夜闌的狗🐶
🚀 個(gè)人簡(jiǎn)介:一個(gè)正在努力學(xué)技術(shù)的CV工程師,專注基礎(chǔ)和實(shí)戰(zhàn)分享 ,歡迎咨詢!
💖 歡迎大家:這里是CSDN,我總結(jié)知識(shí)的地方,喜歡的話請(qǐng)三連,有問題請(qǐng)私信 😘 😘 😘
文章目錄
- 前言
- 一、編譯“狂飆”
- ?1.添加 –ccache 參數(shù):
- ?2.添加 –fast-rebuild 參數(shù)
- ?3.添加 enable_notice_collection=false 參數(shù)
- ?4.添加 –build-target 參數(shù)
- ?5.添加 --build-only-gn 參數(shù)
- ?6.添加 --jobs 參數(shù)
- 總結(jié)
前言
??大家好,又見面了,我是夜闌的狗🐶,本文是專欄【鴻蒙系統(tǒng)】專欄的第2篇文章;
??今天也要開始學(xué)習(xí)鴻蒙系統(tǒng)了💖💖💖,開啟新的征程,記錄最美好的時(shí)刻🎉,每天進(jìn)步一點(diǎn)點(diǎn)。在學(xué)習(xí)鴻蒙系統(tǒng)過程中,讓我最頭疼的就是編譯速度好慢,從 git
上拉下來(lái)的源碼編譯過程都是全量編譯,這讓我倍感焦灼,于是就帶著問題深入了解一下鴻蒙系統(tǒng)編譯過程,學(xué)習(xí)一下加快 harmony
本地編譯的參數(shù);
??專欄地址:【鴻蒙系統(tǒng)】 , 此專欄是我是夜闌的狗對(duì)鴻蒙系統(tǒng)編譯過程的總結(jié),希望能夠加深自己的印象,以及幫助到其他的小伙伴😉😉。
??如果文章有什么需要改進(jìn)的地方還請(qǐng)大佬不吝賜教👏👏。
一、編譯“狂飆”
??OpenHarmony有兩種編譯方式,一種是通過hb工具編譯,一種是通過build.sh腳本編譯。編譯時(shí),適當(dāng)選擇添加以下的編譯參數(shù)可以加快編譯的過程。本文將提升build.sh方式編譯速度的方法整理如下:
?1.添加 –ccache 參數(shù):
-
原理:ccache會(huì)緩存c/c++編譯的編譯輸出,下一次在編譯輸入不變的情況下,直接復(fù)用緩存的產(chǎn)物。
-
安裝:
??在線安裝:執(zhí)行 sudo apt-get install ccache
命令。
sudo apt-get install ccache
??離線安卓:官網(wǎng)下載,下載二進(jìn)制文件,把ccache所在路徑配置到環(huán)境變量。
- 使用:執(zhí)行.
/build.sh –product-name 產(chǎn)品名 –ccache
命令。再在--ccache
后添加export CCACHE_NOHASHDIR=“true” 和 export CCACHE_SLOPPINESS=“include_file_ctime” (設(shè)置ccache在做hash的時(shí)候不hash路徑、不檢查文件的change time)
./build.sh --product-name rk3568 --ccache export CCACHE_NOHASHDIR="true" export CCACHE_SLOPPINESS="include_file_ctime"
?2.添加 –fast-rebuild 參數(shù)
- 原理:編譯流程主要分為:
preloader->loader->gn->ninja
這四個(gè)過程,在本地沒有修改gn和產(chǎn)品配置相關(guān)文件的前提下,添加–fast-rebuild
會(huì)讓你直接從 ninja 編譯開始。ninja 直接執(zhí)行編譯鏈接步驟,跳過前面的產(chǎn)品配置解析和 gn 解析,在 gn 相關(guān)腳本沒有發(fā)生改變的前提下使用。 - 使用:執(zhí)行
./build.sh –product-name 產(chǎn)品名 –fast-rebuild
命令。
./build.sh --product-name rk3568 --fast-rebuild
?3.添加 enable_notice_collection=false 參數(shù)
- 原理:notice file的搜集用于產(chǎn)品化的LICENSE生成,取消收集開源notice的過程,在非產(chǎn)品化場(chǎng)景開發(fā)態(tài)可關(guān)閉,提升編譯速度,節(jié)省編譯~7%時(shí)間。
- OpenHarmony開源軟件 Notice收集策略說(shuō)明。
- 使用:執(zhí)行./build.sh –product-name 產(chǎn)品名 –gn-args –enable_notice_collection=false –ccache命令。
./build.sh --product-name rk3568 --gn-args enable_notice_collection=false
?4.添加 –build-target 參數(shù)
- 原理:通過編譯指定的模塊從而加快編譯速度。
- 該參數(shù)用于指定編譯模塊,如何找模塊的名字:
- 相關(guān)倉(cāng)下BUILD.gn中關(guān)注group、ohos_shared_library、ohos_executable等關(guān)鍵字。
- ./build.sh –product-name 產(chǎn)品名 –build-target 模塊名 –build-only-gn生成build.ninja,然后去該文件中查找相關(guān)模塊名。
- 使用:執(zhí)行./build.sh –product-name 產(chǎn)品名 –build-target ark_js_host_linux_tools_packages命令。
?5.添加 --build-only-gn 參數(shù)
- 原理:編譯流程主要分為:
preloader->loader->gn->ninja
這四個(gè)過程,添加 --build-only-gn 參數(shù)只會(huì)重新執(zhí)行Preloader、loader、gn,不進(jìn)行最后的編譯動(dòng)作。
?6.添加 --jobs 參數(shù)
-
原理:為編譯添加多線程并發(fā)執(zhí)行。
-
使用:執(zhí)行
./build.sh --product-name {產(chǎn)品名} --jobs=N
命令。
./build.sh --product-name {產(chǎn)品名} --jobs=N
??N為工作線程數(shù)(ninja 默認(rèn)的N是cpu核數(shù)+2),根據(jù)系統(tǒng)的內(nèi)核數(shù)設(shè)置工作線程的默認(rèn)數(shù)。在構(gòu)建大型項(xiàng)目時(shí),速度可能會(huì)受到主線程分派工作和連接依賴關(guān)系圖的速度的限制。如果有太多的工作線程,主線程就會(huì)被耗盡,并且它的整體運(yùn)行速度會(huì)變慢。
總結(jié)
??感謝觀看,如果有幫助到你,請(qǐng)給文章點(diǎn)個(gè)贊和收藏,讓更多的人看到。🌹 🌹 🌹
??也歡迎你,關(guān)注我。👍 👍 👍
??原創(chuàng)不易,還希望各位大佬支持一下,你們的點(diǎn)贊、收藏和留言對(duì)我真的很重要!!!💕 💕 💕 最后,本文仍有許多不足之處,歡迎各位認(rèn)真讀完文章的小伙伴們隨時(shí)私信交流、批評(píng)指正!
更多專欄訂閱:
- 😀 【LeetCode題解(持續(xù)更新中)】
- 🌼 【鴻蒙系統(tǒng)】
- 👑 【Python腳本筆記】
- 🚝 【Java Web項(xiàng)目構(gòu)建過程】
- 💛 【數(shù)字圖像處理】
- ? 【JavaScript隨手筆記】
- 🤩 【大數(shù)據(jù)學(xué)習(xí)筆記(華為云)】
- 🦄 【程序錯(cuò)誤解決方法(建議收藏)】
- 🚀 【軟件安裝教程】
訂閱更多,你們將會(huì)看到更多的優(yōu)質(zhì)內(nèi)容!!