[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 個少的多。
之後也會再繼續觀察看看是否此招有效了~