(microsoft.vscode.cpp.extension.darwin進程高cpu占用問題) 免費的vs code現在已經成為mac/linux平臺的碼農新寵,畢竟從windows平臺開發virsul studio多年的經驗積累不是白給的。 我也從諸多的代碼編輯器環境,逐漸遷移、統一到了vs ...
(microsoft.vscode.cpp.extension.darwin進程高cpu占用問題)
免費的vs-code現在已經成為mac/linux平臺的碼農新寵,畢竟從windows平臺開發virsul studio多年的經驗積累不是白給的。
我也從諸多的代碼編輯器環境,逐漸遷移、統一到了vs-code。最近發現一啟動vs-code,風扇就呼呼轉,才開始還沒註意,以為微軟的Windows中二病做派再次發作了。後來逐漸感覺系統響應速度嚴重下降,仔細檢查發現是一個進程CPU占用高企不墜:microsoft.vscode.cpp.extension.darwin,如果是在linux平臺則是:microsoft.vscode.cpp.extension.linux。
在網上搜索,發現這個問題早已有之,社區中投訴帖汗牛充棟,大致可以把問題界定向vs-code的插件機制和擴展插件的問題,但實際解決問題的方法一直沒有,大家都寄期望於軟體的升級。
不過花費大量時間後,最終在一個帖子的很靠後位置找到一個解決辦法:
編輯文件:.vscode/extensions/ms-vscode.cpptools-0.17.7/out/src/LanguageServer/client.js,註意如果你的c++插件不是0.17.7版本(當前最新版),請修改為你當前版本的文件夾。
修改內容:
- extensionProcessName += '.linux';
+ //extensionProcessName += '.linux';
+ extensionProcessName += '.linux.sh';
}
else if (plat == 'darwin') {
extensionProcessName += '.darwin';
隨後再建立一個文件:~/.vscode-insiders/extensions/ms-vscode.cpptools-0.17.7/bin/Microsoft.VSCode.CPP.Extension.linux.sh,同樣註意版本號跟文件夾對應。內容為:
#!/bin/bash
exec /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 \
--library-path /opt/glibc-2.18/lib:/lib64:/lib64 \
"${0//.sh/}" ${1+"$@"}
原文的修改方式是對linux。嘗試修改完重啟vs-code,故障排除了。
但是在mac電腦,這種方式就不靈了,macOS所使用的鏈接庫不是這種方式,而且簽名機制也不太容易搞定。
所以建議先卸載微軟提供的c/c++擴展,可以安裝第三方的c++擴展工具,用起來沒太大的區別。比如austin出品的C++ Intellisense。
參考文檔
https://github.com/Microsoft/vscode-cpptools/issues/1249