这篇文章大概率不能解决你的问题,只是提供解决问题思路!
这篇文章大概率不能解决你的问题,只是提供解决问题思路!
这篇文章大概率不能解决你的问题,只是提供解决问题思路!
起因
最近我一直被一个问题困扰:VSCode CPU 占用率太高。
起初我以为是正常现象,毕竟可能既要马儿不吃草,又要马尔跑得快。后来查看 Windows 任务管理器,发现 VSCode CPU 占用率达100%,以至于导致系统严重卡顿。
经过
于是我VSCode的进程管理器。可是我没有发现占用CPU的进程。
思考
VSCode是什么?
VSCode是一个非常流行的IDE。微软官方提供一个轻量级安装版本。用户在使用时可以安装插件协助开发。
所以问题很可能出在后安装的插件上。我的 VSCode 装了 77 款插件。(的确装得有点多。我有一点收集癖好,喜欢尝试好玩的插件 )
接着,我屏蔽了所有的插件。发现 VSCode CPU 占用率就正常了。
控制变量法
控制变量法(英语:control variates)是在蒙特卡洛方法中用于减少方差的一种技术方法。该方法通过对已知量的了解来减少对未知量估计的误差。
我按照控制变量法,逐步解开被屏蔽的插件。最终发现是一款名叫 Todo Tree 的插件引起的 VSCode CPU 占用率过高。
我在 Todo Tree 插件的配置中,看到一个开关。
我打开这个开关,在 Todo Tree 的输出中看到 N 多这样的日志:
1 2 3 4 5 6 7 8
| 20:17:26.020 Pattern:(//|#|<!--|;|/\*|^|^[ \t]*(-|\d+.))\s*(\[x\]|\[ \]|XXX|TODO|HACK|FIXME|BUG) 20:17:26.021 Command: "d:\Software\Microsoft VS Code\resources\app\node_modules.asar.unpacked\@vscode\ripgrep\bin\rg.exe" --no-messages --vimgrep -H --column --line-number --color never --max-columns=1000 --no-config -f "c:\Users\Tang Lijin\AppData\Roaming\Code\User\workspaceStorage\de8a3d12cdf87f96eccd36a478da3609\Gruntfuggly.todo-tree\kp7rt03o9.txt" -g "!**/node_modules" -g "!d:\Projects\blog\node_modules\hexo-cli\assets" -g "!d:\Projects\blog\node_modules\hexo-cli\assets\themes\landscape" "d:\Projects\blog\public\themes\next\tags\Resource-Quote" 20:17:26.028 Searching d:\Projects\blog\public\themes\next\downloads\images\avatar.png... 20:17:26.028 Writing pattern file:c:\Users\Tang Lijin\AppData\Roaming\Code\User\workspaceStorage\de8a3d12cdf87f96eccd36a478da3609\Gruntfuggly.todo-tree\10j6oxqq1t.txt 20:17:26.029 Pattern:(//|#|<!--|;|/\*|^|^[ \t]*(-|\d+.))\s*(\[x\]|\[ \]|XXX|TODO|HACK|FIXME|BUG) 20:17:26.030 Command: "d:\Software\Microsoft VS Code\resources\app\node_modules.asar.unpacked\@vscode\ripgrep\bin\rg.exe" --no-messages --vimgrep -H --column --line-number --color never --max-columns=1000 --no-config -f "c:\Users\Tang Lijin\AppData\Roaming\Code\User\workspaceStorage\de8a3d12cdf87f96eccd36a478da3609\Gruntfuggly.todo-tree\10j6oxqq1t.txt" -g "!**/node_modules" -g "!d:\Projects\blog\node_modules\hexo-cli\assets" -g "!d:\Projects\blog\node_modules\hexo-cli\assets\themes\landscape" "d:\Projects\blog\public\themes\next\downloads\images\avatar.png" 20:17:26.037 Searching d:\Projects\blog\public\themes\next\2022\12\hello-world... 20:17:26.038 Writing pattern file:c:\Users\Tang Lijin\AppData\Roaming\Code\User\workspaceStorage\de8a3d12cdf87f96eccd36a478da3609\Gruntfuggly.todo-tree\3q2hxcp83.txt
|
这些日志表明 Todo Tree 处理了 d:\Projects\blog\public 下的文件。
结果
我在 Todo Tree 插件的配置中,又看到一个开关。
我把这个开关关闭了,VSCode CPU 占用率就又正常了。