前期概要
使用vs code连接wsl经常性出现终端和ide卡住无法使用,关闭vs后即正常。
根本原因
cpptools 吃内存 = "全量符号索引常驻" × "多文件夹多实例" × "可能的宏/symlink 泄漏" × "没用 compile_commands 限制范围"
内存占用分析
实时监控 wsl 内存和进程占用
watch -n 0.5 'free -h && echo "---" && ps -eo pid,rss,comm --sort=-rss | head -15'
部分 | 作用 |
|---|---|
watch -n 0.5 | 每 0.5 秒自动重新执行一次后面的命令 |
free -h | 显示内存和 swap 使用情况(-h = 人类可读,gb/mb) |
echo "---" | 打一条分隔线 |
ps -eo pid,rss,comm --sort=-rss | 列出所有进程,按内存占用(rss)从大到小排序 |
head -15 | 只取前 15 行(也就是最吃内存的 15 个进程) |

解决方法
1.排除无效目录
在settings.json配置,扫描文件树时跳过这些目录,排除了能省掉一大坨无意义解析
//排除 cpptools 扫描文件夹
"c_cpp.files.exclude": {
"**/.git": true,
"**/build": true,
"**/bin": true,
"**/out": true,
"**/log": true,
"/project_root/component/anonymized": true,
},settings.json位置

2.降低 cpu 占有率

3.加大内存配置
修改wsl配置文件,swap 用硬盘当内存用,.wslconfig在windows %username%目录

4.禁用插件cpp-tools
孩子不听话就直接干掉,一些智能提示和跳转功能就会无法使用了
使用其他工具替换,例如clangd

到此这篇关于vs code c/c++插件cpptools内存占用异常的问题解决的文章就介绍到这了,更多相关c++插件cpptools内存占用异常内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论