[VSCode] 預設關閉擴充功能的 Language server,降低 CPU 使用率

[VSCode] 預設關閉擴充功能的 Language server,降低 CPU 使用率

之前寫過一篇 開啟 Teams 與 VSCode 時,CPU 使用率一直很高?

雖然關掉了許多的 VSCode 擴充功能,不過 CPU 使用率的問題其實還是蠻常出現,

因此還是會找找方法,看能不能降一點 VSCode 擴充功能的 CPU 使用率…

 

舉例來說,從 VSCode > View > Command Palette > Developer: Open Process Explorer,

可以看到 VSCode 相關的 process,

注意到有好幾個 extensionHost,而且幾乎每個下面都有一個 terraform-ls:

 

上面的 terraform-ls 是 Terraform 的擴充功能提供的 Language server,

用來提供許多功能,像是語法高亮度顯示、存檔時自動格式化、IntelliSense 之類的,

所以是蠻重要的 process,只是為什麼有這麼多個呢?

感覺和我在 VSCode 中開啟的專案數量有關聯,但又不是每個專案都有一個…

 

再來看 Go 的擴充功能,它會開一個 gopls 的 process,

這也是 Go 的 Language server,

但它啟動時會耗費非常多的 CPU,似乎是在索引 Go 相關的檔案…

 

這些 Language server process 都必須一直執行,才能提供功能,

但我們有沒有辦法稍微調整這些擴充功能,

讓它們只在需要的時候,再來啟動 Language server 呢?

 

後來想到的是,我們可能可以將 Language server 都先在「使用者設定」中預設關閉,

若專案真的有相關的需求時再打開,可能可以減少不必要的消耗~

 

打開 VSCode > Preferences > Settings > User,搜尋 language server,

然後把類似啟用 Language server 的地方都關掉。

像這裡是把 Python Language Server Type 設成 None:

 

把 Terraform 的 Language server 設為不啟用:

 

把 Go 的 Language server 設為不啟用,也關閉實驗性質的功能:

 

而如果這個專案真的需要相關的 Language server 時,

再到 Workspace 的設定裡,把對應的 Language server 打開就好:

 

當我這樣設定後,terraform-ls process 只出現了一個,比之前的 6 個少的多。

之後也會再繼續觀察看看是否此招有效了~

(本頁面已被瀏覽過 534 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料