RBT*_*RBT 8 process-management process visual-studio-code
我正在使用 Visual Studio 代码。我的机器遇到性能问题。我去了任务管理器,看到Code.exe进程选项卡中有几个实例,即使我的 PC 上只有一个运行/活动的 Visual Studio Code 窗口。
我可以看到总共有八个Code.exe. 尽管如此,我可以看到所有八个实例都占用了几 KB 到最大 55 MB 的 RAM 内存。所以有一件事是肯定的,这几个进程并没有一起吃掉太多的内存,但它们的计数仍然让我绊倒了一秒钟。我了解到一个 Visual Studio Code 窗口应该映射到一个Code.exe进程。
我还有一个观察。我打开了另一个新的 Visual Studio Code 窗口,看到这次Code.exe进程数增加了两个而不是一个。Code.exe当总共有 2 个 Visual Studio Code 窗口当前处于活动状态时,总进程数现在自己变成了 10。我不确定这里发生了什么。有人可以帮助我了解这是否是内部实现 Visual Studio Code 的正确行为吗?
此行为是设计使然,并记录在 Github 问题#5856、#8006和#20856 的评论中
链接中提到的评论摘要
这种行为是 vscode 的设计方式以及它构建在 Chromium/Electron 上的结果。从最终用户的角度来看,进程的数量不应该真正重要,重要的是每个进程所做的工作量以及它们之间的通信。
根据设计,我们使用的 UI 框架本身就是多进程的,然后我们有 1 个扩展进程(每个窗口),一个文件监视进程(每个窗口)和 1 个搜索进程。我们还有 1 个共享的更新过程。
使用 Process Explorer 之类的工具,您可以获得有关流程的更多详细信息。只有一个进程code.exe会有父explorer.exe进程,它表示产生其他子进程的主进程。以下是code.exe使用 Tool Process Explorer显示Main属性的屏幕截图。
此外,快速浏览每个子code.exe进程的命令行参数将提供关于每个进程应该做什么的更多有用信息。例如,子进程之一code.exe似乎是崩溃的错误报告进程。
"C:\Program Files (x86)\Microsoft VS Code\Code.exe" --reporter-url=https://ticinocrashreporter.azurewebsites.net/crash --application-name=VSCode "--crashes-directory=..\AppData\Local\Temp\VSCode Crashes" --v=1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8282 次 |
| 最近记录: |