VSCode原生不支持实时显示用户代码的CPU/内存占用,仅监控自身进程;需通过系统命令(如top、psutil)、Chrome DevTools(Node.js)或cProfile+snakeviz(Python)等外部工具对接真实进程进行精准监控。
VSCode 原生不支持在状态栏或运行时界面中实时显示你代码的 CPU/内存占用——它只管编辑器自身资源,不管你的脚本跑得多疯。 想监控 python script.py 或 node index.js 的真实资源消耗,必须绕过 VSCode UI 层,直接对接系统进程或在代码里埋点。
这个命令(Ctrl+Shift+P → 输入 Developer: Open Process Explorer)能列出所有 VSCode 子进程:主进程、renderer、extensionHost、shared-process。但它不显示你运行的脚本进程,除非你用 Code Runner 扩展并启用了进程托管模式(默认关)。常见误解是以为 extensionHost 下面那个高内存条目是你刚 run 的 Python 脚本——其实那是语言服务器或 Prettier 在后台解析。
python main.py,该进程完全游离于这个视图之外python.exe 或 node 进程,而不是盯着 extensionHost 看VSCode 集成终端就是普通 shell,所有系统级监控命令都有效。关键是要在代码启动后,立刻拿到它的 PID,再持续采样。
python script.py & echo $! > /tmp/my_pid; top -p $(cat /tmp/my_pid) —— 启动后台进程并用 top 锁定监控$p = Start-Process python -ArgumentList "script.py" -PassThru; Measure-Command { Get-Process -Id $p.Id } | Select-Object TotalSeconds —— 获取执行耗时,再配合 Get-Process -Id $p.Id 查内存psutil(Python)或 process.memoryUsage()(Node.js)在代码里主动上报,比外部轮询准得多Resource Monitor 扩展(作者 stefanmaierhofer)在状态栏显示的 CPU% 和 Memory MB,本质是调用系统命令查整个 code 进程组的 RSS,不是你 run 出来的子进程。它甚至无法区分 renderer 和 extensionHost 的内存归属。
ps 可能误报内存值,数字偏高 20–30%如果你真关心某段逻辑的峰值内存或 CPU 时间,别依赖外部工具采样,直接在代码里拿原生指标:
psutil.Process().memory_info().rss 获取当前 RSS;tracemalloc 跟踪内存分配源头;time.perf_counter() 替代 time.time() 测精确耗时process.memoryUsage().heapUsed 是 V8 堆内存,但实际物理内存要看 process.memoryUsage().rss;CPU 时间需用 process.cpuUsage() 差值计算psutil 默认只对本进程有效,跨进程(如子 shell)要显式传 PID;process.cpuUsage() 返回的是累计 ticks,不是百分比,得自己除以 elapsed time真正容易被忽略的点:VSCode 的“运行”动作(比如点击 ▶️)多数时候只是起个 shell 子进程,它和编辑器主进程完全隔离。你以为在监控“VSCode 里的代码”,其实你监控的是操作系统里的另一个独立进程——所有精度问题、PID 丢失、采样延迟,根源都在这个边界上。