最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

VSCode 閱讀Linux代碼怎么才不卡頓?這樣做才能快的飛起!

2022-04-21 15:38 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿



Linux 內(nèi)核代碼用什么編輯器?


  • 分享過(guò)怎么學(xué)習(xí) Linux 內(nèi)核代碼的思路,當(dāng)時(shí)順便提了一點(diǎn),奇伢是用 vscode 看內(nèi)核代碼。有同學(xué)對(duì)此提出了疑問(wèn):

  1. vscode 看 Linux 代碼不卡嗎?

  2. vscode 符號(hào)跳轉(zhuǎn)怎么老有問(wèn)題?

  3. windows 開(kāi)發(fā) Linux 項(xiàng)目好麻煩,總是要手動(dòng)同步代碼?

  • 其實(shí),上面提出的三點(diǎn)疑問(wèn),合理配置 vscode 是可以完美解決的。今天就以 Linux 內(nèi)核源碼為例,分享一下超大項(xiàng)目源碼的源碼開(kāi)發(fā)閱讀的姿勢(shì)。

思考遇到的幾個(gè)問(wèn)題

我們經(jīng)常遇到兩個(gè)問(wèn)題:

  1. 本地電腦存在瓶頸,單機(jī)性能有限,畢竟資金緊缺?

  2. 一般電腦安裝的都是 windows 或者 mac 圖形支撐好的系統(tǒng),而開(kāi)發(fā)的項(xiàng)目又必須是 Linux 上編譯運(yùn)行?

  • 如果本機(jī)直接用 vscode ,勢(shì)必會(huì)遇到上面的問(wèn)題。比如 Linux 代碼量巨大,本機(jī)性能是 hold 不住,編輯器建立內(nèi)存的索引非常龐大,既要吃內(nèi)存又要吃 CPU 。對(duì)于編譯,那就更麻煩了,涉及到手動(dòng)的同步。

我們經(jīng)常怎么解決它?

  1. 縱向優(yōu)化電腦,給自己電腦加個(gè)內(nèi)存條,換個(gè) cpu ,這個(gè)思路是可以的,但是它永遠(yuǎn)存在性能瓶頸。這還真不是錢(qián)的問(wèn)題;

  2. 對(duì)于平臺(tái)依賴,以前的實(shí)踐是 windows 下編輯,然后用 scp 或者其他同步工具,把代碼同步到另外一臺(tái) Linux 下去編譯,很麻煩;

怎么才能徹底解決它?

  • 奇伢的最佳實(shí)踐:vscode 遠(yuǎn)程開(kāi)發(fā),利用多機(jī)性能;


怎么做才能解決單機(jī)的瓶頸和平臺(tái)依賴?

  • 解決單機(jī)瓶頸的思路非常簡(jiǎn)單,那就是分布式、多機(jī)部署。

  • 我的使用姿勢(shì)是本機(jī)打開(kāi)一個(gè) vscode ,但是代碼放在遠(yuǎn)程主機(jī),遠(yuǎn)程主機(jī)是一臺(tái)性能強(qiáng)勁的 Linux 服務(wù)器,速度杠杠的。

  • 這樣的好處就是把資源消耗的壓力分?jǐn)偟竭h(yuǎn)程主機(jī),本機(jī)的消耗非常少,再大的項(xiàng)目也非常穩(wěn)定。

  • 第二個(gè)好處就是平臺(tái)的無(wú)縫切換,即使你使用的是 windows 機(jī)器,也能非常絲滑的進(jìn)行 Linux 項(xiàng)目的開(kāi)發(fā),代碼編輯,項(xiàng)目編譯無(wú)感切換。

  • 遠(yuǎn)程主機(jī)是一臺(tái) 32 核 128 G SSD 盤(pán) 的服務(wù)器,跑個(gè) Linux 源代碼的解析那還不是綽綽有余。

有童鞋問(wèn),這服務(wù)器哪里來(lái)?答:你不是在上班嘛。公司的。

  • 并且這種開(kāi)發(fā)方式能夠讓你的電腦不用再焦慮,把縱向優(yōu)化的思路轉(zhuǎn)變成橫向的擴(kuò)展之后,你的瓶頸將不復(fù)存在。你的本機(jī)只做一個(gè)界面即可。

  • 效果展示:

【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個(gè)人覺(jué)得比較好的學(xué)習(xí)書(shū)籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。∏?00名進(jìn)群領(lǐng)取,額外贈(zèng)送一份價(jià)值699的內(nèi)核資料包(含視頻教程、電子書(shū)、實(shí)戰(zhàn)項(xiàng)目及代碼)?

?



怎么配置 vscode 遠(yuǎn)程開(kāi)發(fā)?

  • 講了那么多,我們接下來(lái)看看怎么實(shí)踐。怎么配置這個(gè)呢?下面以 Linux 源碼為例,手把手教你配置。

準(zhǔn)備 Linux 主機(jī)

  • 這是我們的遠(yuǎn)程主機(jī),性能怎么好怎么來(lái)。當(dāng)然,如果只是為了跨平臺(tái),其實(shí)可以是虛擬機(jī)。

遠(yuǎn)程主機(jī)安裝 global 工具

  • 注意,是在遠(yuǎn)程主機(jī)上安裝哦,為了更好,更快的解析我們的符號(hào)表。下面是 ubuntu 的命令,其他的 Linux 系統(tǒng)可以查一下,比如 centos 是 yum 安裝。

  • 安裝完之后,確認(rèn)兩個(gè)二進(jìn)制文件,global, gtags, 一般在 /usr/bin/ 目錄下。有這兩個(gè)文件,就說(shuō)明 OK 。

Linux 源碼下載

  • 這個(gè)自行去 Github 或者其他鏡像網(wǎng)站上下載即可。Github 地址:https://github.com/torvalds/linux.git

  • 下載之后,放到遠(yuǎn)程的目錄即可:

vscode 安裝 Remote-SSH 插件

  • 現(xiàn)在有主機(jī),有代碼了,怎么才能讓 vscode 具備連接遠(yuǎn)程主機(jī)的能力呢?

  • vscode 遠(yuǎn)程連接主機(jī)主要是依賴于微軟提供的插件 Remote-SSH。


  • 安裝完插件之后,vscode 就具備了連接遠(yuǎn)程主機(jī)的能力。在左下角有個(gè)符號(hào)><,點(diǎn)擊它就能選擇連接哪個(gè)遠(yuǎn)程主機(jī)。連接上了之后,會(huì)重新開(kāi)一個(gè)窗口,左下角也會(huì)顯示。



  • 這里順便提一下,微軟一共發(fā)布了三款遠(yuǎn)程連接的插件:

  1. Remote - Containers

  2. Remote - SSH

  3. Remote - WSL

  • 名字上也很容易區(qū)分,就是支持連接容器,SSH主機(jī),WSL子系統(tǒng)。

安裝 C/C++ GNU Global 插件

  • 好,現(xiàn)在萬(wàn)事俱備了。下一步就是把符號(hào)解析的事情準(zhǔn)備好,你就能享受快速的源代碼閱讀體驗(yàn)了。

  • 首先我們連接上遠(yuǎn)程主機(jī),注意:這個(gè)時(shí)候會(huì)重新打開(kāi)一個(gè)窗口,而不是在本地安裝。


  • 當(dāng)然,C/C++ 插件也最好安裝一下。

  • 劃重點(diǎn):一定要先連接上主機(jī),然后再安裝 GNU Global 插件哦。一定是在遠(yuǎn)程主機(jī)上安裝。

vscode 配置 global 路徑

  • vscode 的配置(ssh)里,輸入以下配置:


  • 在 vscode 的 settings.json 配置里,指定 global 的相關(guān)路徑。

  • 注意:"gnuGlobal.objDirPrefix" 的路徑必須要手動(dòng)創(chuàng)建好,如果不存在,會(huì)導(dǎo)致后續(xù) Rebuild 的失敗。

測(cè)試是否成功執(zhí)行遠(yuǎn)程主機(jī)上的 Gtags

  • 好啦,現(xiàn)在插件安裝完成了。測(cè)試一下安裝配置的是否正確。shift + command + P 把命令面板掉出來(lái),執(zhí)行 Global: Show GNU Global Version 命令,看是否能成功顯示版本。在右下角顯示版本號(hào),那么就說(shuō)明一切就緒:

最后一擊,生成符號(hào)表

  • shift + command + P 把命令面板調(diào)出來(lái),執(zhí)行 Global: Rebuild Gtags Database 命令。等待右下角的通知,如果顯示:

那么就說(shuō)明符號(hào)表解析完成了。符號(hào)表生成成功會(huì)在 "gnuGlobal.objDirPrefix" 的路徑里生成三個(gè)文件:

  • 好了,上面的搞完,就可以愉快的使用 vscode 看源碼了,速度非???。


  • 好啦,現(xiàn)在你可以盡情享受 Linux 代碼的閱讀開(kāi)發(fā)了,既能享受圖形界面的便捷,又能無(wú)縫的進(jìn)行 Linux 的開(kāi)發(fā)。而且不用在受限于本機(jī)電腦的資源瓶頸,具有無(wú)限的擴(kuò)展空間。

總結(jié)

  1. 單機(jī)總是存在瓶頸,縱向優(yōu)化它總有極限,并且價(jià)格不菲;

  2. 既要圖形界面的便捷?又要無(wú)縫切換 Linux 開(kāi)發(fā)模式?遠(yuǎn)程開(kāi)發(fā)是個(gè)不錯(cuò)的體驗(yàn);

  3. vscode 使用插件來(lái)實(shí)現(xiàn)遠(yuǎn)程開(kāi)發(fā),本機(jī)電腦作為一個(gè)界面,符號(hào)解析放在遠(yuǎn)程主機(jī),真正做到橫向擴(kuò)展,理論上性能無(wú)上限;

  4. Linux 源代碼的解析放到遠(yuǎn)程主機(jī),vscode 遠(yuǎn)程連接,源代碼的閱讀流暢絲滑,開(kāi)發(fā)體驗(yàn)完美;


VSCode 閱讀Linux代碼怎么才不卡頓?這樣做才能快的飛起!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
金坛市| 湾仔区| 辽源市| 子洲县| 昌江| 渭源县| 习水县| 富宁县| 东源县| 渭南市| 梁平县| 涞源县| 华池县| 常宁市| 定南县| 木里| 库伦旗| 枣庄市| 岳阳县| 溧阳市| 兴安盟| 庄河市| 阿克陶县| 柘荣县| 平顶山市| 沾化县| 颍上县| 项城市| 通河县| 安徽省| 和政县| 曲靖市| 郸城县| 开化县| 神木县| 门源| 保德县| 修文县| 海原县| 平陆县| 昔阳县|