自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

系統(tǒng) Linux
分享過(guò)怎么學(xué)習(xí) Linux 內(nèi)核代碼的思路,當(dāng)時(shí)順便提了一點(diǎn),奇伢是用 vscode 看內(nèi)核代碼。今天就以 Linux 內(nèi)核源碼為例,分享一下超大項(xiàng)目源碼的源碼開發(fā)閱讀的姿勢(shì)。

本文轉(zhuǎn)載自微信公眾號(hào)「奇伢云存儲(chǔ)」,作者奇伢。轉(zhuǎn)載本文請(qǐng)聯(lián)系奇伢云存儲(chǔ)公眾號(hào)。

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

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

  • vscode 看 Linux 代碼不卡嗎?
  • vscode 符號(hào)跳轉(zhuǎn)怎么老有問題?
  • windows 開發(fā) Linux 項(xiàng)目好麻煩,總是要手動(dòng)同步代碼?

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

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

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

  • 本地電腦存在瓶頸,單機(jī)性能有限,畢竟資金緊缺?
  • 一般電腦安裝的都是 windows 或者 mac 圖形支撐好的系統(tǒng),而開發(fā)的項(xiàng)目又必須是 Linux 上編譯運(yùn)行?

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

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

  • 縱向優(yōu)化電腦,給自己電腦加個(gè)內(nèi)存條,換個(gè) cpu ,這個(gè)思路是可以的,但是它永遠(yuǎn)存在性能瓶頸。這還真不是錢的問題;
  • 對(duì)于平臺(tái)依賴,以前的實(shí)踐是 windows 下編輯,然后用 scp 或者其他同步工具,把代碼同步到另外一臺(tái) Linux 下去編譯,很麻煩;

怎么才能徹底解決它?

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

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

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

我的使用姿勢(shì)是本機(jī)打開一個(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)目的開發(fā),代碼編輯,項(xiàng)目編譯無(wú)感切換。

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

有童鞋問,這服務(wù)器哪里來(lái)?

答:你不是在上班嘛。公司的。

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

效果展示:

怎么配置 vscode 遠(yuǎn)程開發(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 安裝。

apt install global

安裝完之后,確認(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)程的目錄即可:

root@ubuntu20:/mnt/opensource/linux-3.10# pwd
/mnt/opensource/linux-3.10

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ì)重新開一個(gè)窗口,左下角也會(huì)顯示。

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

  • Remote - Containers
  • Remote - SSH
  • 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ì)重新打開一個(gè)窗口,而不是在本地安裝。

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

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

vscode 配置 global 路徑

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

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

"gnuGlobal.globalExecutable": "/usr/bin/global",
"gnuGlobal.gtagsExecutable": "/usr/bin/gtags",
// 指明生成的符號(hào)表存放在哪個(gè)位置
"gnuGlobal.objDirPrefix": "/mnt/.global"

注意:"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ō)明一切就緒:

global (GNU GLOBAL) 6.6.4

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

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

Build tag files successfully

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

root@ubuntu20:/mnt/opensource/linux-3.10# ll -lh /mnt/.global/mnt/opensource/linux-3.10/
total 395M
drwxr-xr-x 2 root root 4.0K Feb 14 19:06 ./
drwxr-xr-x 3 root root 4.0K Feb 14 18:33 ../
-rw-r--r-- 1 root root 7.6M Feb 14 19:06 GPATH
-rw-r--r-- 1 root root 278M Feb 14 19:06 GRTAGS
-rw-r--r-- 1 root root 109M Feb 14 19:06 GTAGS

好了,上面的搞完,就可以愉快的使用 vscode 看源碼了,速度非??臁?/p>

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

總結(jié)

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

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

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

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


責(zé)任編輯:武曉燕 來(lái)源: 奇伢云存儲(chǔ)
相關(guān)推薦

2020-10-25 19:58:04

Pythonic代碼語(yǔ)言

2022-01-28 09:15:54

電腦間歇卡頓

2020-05-15 15:28:51

爬蟲Python學(xué)習(xí)

2021-11-02 14:46:50

數(shù)據(jù)

2025-02-06 08:54:45

gockGoHTTP

2018-06-22 15:57:59

GlobalSSHUCloud卡頓

2021-11-28 21:26:39

Windows 7Windows微軟

2010-06-10 10:24:38

運(yùn)維業(yè)摩卡北塔

2015-05-19 14:41:22

2023-04-26 07:16:25

游戲掉幀CPU

2021-10-13 06:03:12

網(wǎng)絡(luò)帶寬卡頓

2022-04-24 08:23:19

Redis內(nèi)存淘汰策略

2025-04-28 08:05:00

RAID磁盤存儲(chǔ)

2017-07-27 16:18:18

開源項(xiàng)目使用

2015-04-22 09:26:58

前端頁(yè)面卡頓DOM操作

2023-03-31 15:10:32

PythonVSCode程序員

2021-11-26 21:32:58

電腦卡頓硬件

2019-11-05 10:35:57

SpringBoot調(diào)優(yōu)Java

2017-11-21 09:25:23

2011-06-21 16:11:44

SEO
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)