VSCode运行代码时内存飙升主因是扩展、文件监听和缓存残留;需通过Process Explorer定位高内存进程,分层清理Cache、Extensions、WorkspaceStorage并配置优化项。

VSCode 运行代码时内存高,90% 不是代码本身的问题,而是扩展、文件监听和缓存残留共同导致的;深度清理缓存必须关进程、分目录操作,不能只删 Cache 就完事。
为什么运行代码时内存突然飙升
执行代码(尤其是 Python/Node.js 调试或终端运行)会触发语言服务器、调试器、终端子进程三重加载,而这些组件常与扩展强耦合:
-
ms-python.python启用Pylance时,会为整个工作区预加载类型信息,node_modules或venv目录一多,直接吃掉 600MB+ 内存 -
GitLens在调试中仍持续做行级 blame,哪怕你没开 Git 面板,也会维持一个常驻git子进程 - 终端里运行
npm run dev或python app.py后,VSCode 默认不回收其 stdout/stderr 缓冲区,日志堆积几万行就占几百 MB - 搜索进程
rg.exe(RipGrep)被频繁调用(比如 Ctrl+Shift+F),若search.followSymlinks为true,又遇到符号链接循环,会无限递归扫描并内存泄漏
快速定位真实内存大户
别靠任务管理器猜哪个“Code Helper”在作怪——直接进 VSCode 内部看:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入并执行Developer: Open Process Explorer - 展开
Extension Host→ 观察右侧RSS列,重点关注 RSS > 250MB 的扩展名(如ms-python.python、dbaeumer.vscode-eslint) - 展开
Search进程 → 看是否长期卡在rg.exe --json ...,说明搜索索引失控 - 展开
Shared Process→ 若内存持续增长且不回落,大概率是workspaceStorage中某个工作区快照损坏或过大
安全深度清理缓存的实操步骤
清理不是“删光了事”,要分层处理,否则重启后立刻反弹:
- 先彻底退出所有 VSCode 进程:Windows 用任务管理器杀掉全部
Code.exe和Code Helper.exe;macOS 在活动监视器里确认没有Code或Electron进程;Linux 用pkill -f "code" - 清理
Cache和GPUCache(安全,必清):Get-ChildItem "$env:APPDATA\Code\Cache" -Recurse | Remove-Item -Force -Recurse<br>Get-ChildItem "$env:APPDATA\Code\GPUCache" -Recurse -ErrorAction SilentlyContinue | Remove-Item -Force -Recurse
- 选择性清理
Extensions(只删不用的):cd "$env:APPDATA\Code\Extensions",然后ls | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-180)} | Remove-Item -Recurse -Force(删半年没更新的插件) - 谨慎处理
WorkspaceStorage:进$env:APPDATA\Code\WorkspaceStorage,按修改时间排序,只删明显过期的子目录(名称是哈希值,对应已删除的工作区);别全删,否则所有工作区设置重置 - 远程开发残留(如果用过 Remote-SSH / Dev Containers):删掉
$env:APPDATA\Code\Remote\ssh和$env:APPDATA\Code\Remote\containers下的旧连接缓存
清理后必须做的配置加固
否则一周内就会回到原样:
- 在用户级
settings.json中加:"search.followSymlinks": false,<br>"files.watcherExclude": {<br> "**/node_modules/**": true,<br> "**/dist/**": true,<br> "**/build/**": true,<br> "**/.git/**": true<br>},<br>"files.autoSave": "off" - 禁用非必要内置扩展:
Ctrl+Shift+P→Extensions: Show Built-in Extensions→ 搜索GitHub、Jupyter、Ember,右键Disable (Global) - 对 Python 项目,在项目级
.vscode/settings.json中设:"python.analysis.extraPaths": [],<br>"python.defaultInterpreterPath": "./venv/bin/python"
(避免全局site-packages扫描) - 终端输出控制:
"terminal.integrated.scrollback": 1000(默认是 10000,日志缓存吃内存)
真正难清理的从来不是 Cache 文件夹,而是 WorkspaceStorage 里那些带时间戳却没名字的哈希目录——它们记录着每个工作区的语言服务状态、断点位置、搜索历史,删错一个可能让某个项目再也无法正确跳转定义。动手前先备份 $env:APPDATA\Code\WorkspaceStorage 整个目录更稳妥。


















