【问题标题】:How to investigate VS Code taking 30% of CPU although it is supposed to do nothing如何调查占用 30% CPU 的 VS Code,尽管它应该什么都不做
【发布时间】:2019-02-26 13:10:33
【问题描述】:

根据 Windows 任务管理器,我的 CPU 使用率在 20% 到 30% 之间波动。它现在正在发生几个小时。 我希望这个 VS Code 实例什么都不做。

如何调查问题所在?

我尝试打开“开发者:切换开发者工具”,然后转到性能选项卡并记录。不幸的是,它报告说大部分时间都处于“空闲”状态(这是我所期望的)

(我也试过在推特上问,没有成功https://twitter.com/apupier/status/1100348567926071296

问候,

【问题讨论】:

  • 任务管理器是否可以报告 VS CPU 使用率加上你的程序 CPU 使用率?
  • 怎么知道?你能更具体一点吗?你所说的“程序CPU使用率”是什么?我刚刚注意到我的风扇最多运行了几个小时,并且报告为从 Windows 任务管理器中占用内存的唯一程序是 VS Code,虽然它刚刚打开但我不使用它。
  • 你已经回答了,我会在下面回答。

标签: visual-studio-code vscode-extensions


【解决方案1】:

根据 cmets,任务管理器报告的似乎是 VS 在 CPU 利用率和内存方面的总使用量。

多种原因可以解释您所做的观察。

1.Increased CPU and Memory usage by VS Studio.
 
 2. Increased Fan Speed.
 
 3. Your code being idle.

即使您没有主动使用它,VS Code 或其插件之一实际上也可能在做某事。确定如果打开了,即使不使用程序也会占用一些内存。

您可以通过在命令行中键入:code --status 来找到有关每个 VS 代码扩展的 CPU 使用率的更多信息。您也可以尝试执行:code --disable-extensions 运行 VS Code,无需任何扩展,看看 CPU/Memory 使用是否减少。

Results of the code --status will look like this

你也可以在 GitHub 中看到一些相关的问题,我在写这个答案之前检查了:

【讨论】:

  • 谢谢。我如何才能找到哪个 VS Code 扩展实际上在做某事?
  • 不客气,我用更多细节更新了答案。
  • 刚刚了解了“代码--status”,谢谢!不幸的是,我多次尝试触发此命令,但报告使用率为 0%,请参阅 pastebin.com/NbXu2yCa
  • 在指出问题之后,我使用了 Windows 的“进程资源管理器”。我可以注意到有一个特定的 Code.exe 正在运行。它在启动时似乎有不同的参数。这是链接,因为它太长了:pastebin.com/ahXKNvjR
  • 尝试运行代码 --status 如上所述。查看更新的答案以查看结果的外观。更新,如果您提供的结果是您使用此命令找到的过程。然后就是这样。您找到了消耗您的 CPU/内存的进程。
【解决方案2】:

IDE 的运行成本是出了名的昂贵。一旦您打开 VS Code,它就会将程序从您的硬盘驱动器加载到 RAM 中;充当 VS Code 用于管理其环境的所有进程的暂存点。比如,

  • 构建它的 Electron 框架的开销
  • 检查需要同步到编辑器的外部文件更改
  • 渲染管线
  • 支持您正在运行的任何扩展的子进程
  • 终端实例(以及在这些终端中运行的任何扩展)

这是我在快速谷歌搜索后找到的nifty little extension。它将向您显示在 VS Code 中运行的子进程,并可以帮助您准确识别占用最多带宽的子进程。请记住,通过杀死其中一些进程,您可能会开始失去相关的功能,甚至可能导致 VS Code 崩溃。防止它对 CPU 造成负担的唯一可靠方法是在不使用时将其完全关闭。

也许您可以尝试其他 IDE,例如 Sublime、IntelliJ 或 Atom,看看它们在空闲时是否能像您预期的那样运行。就个人而言,我真的很喜欢 Jetbrain 的 IntelliJ 的功能(以及类似的:Webstorm、PhpStorm 等)。

【讨论】:

  • 感谢我不知道的小扩展。我正在为几个 IDE 开发扩展,我并没有真正选择我使用的那个 :-) 但是当我可以选择它时,它是 Eclipse 桌面 IDE。
【解决方案3】:

我遇到了同样的问题。它可能与 git 操作有关。您可能已经从当前文件夹中删除了许多项目,而 git 没有注册删除。

当您对更改进行某些操作时,git 操作将占用大量 CPU。

最简单的解决方案是创建一个新文件夹并开始在其中运行 VSCode。 您可以删除整个旧文件夹,也可以不理会它。这取决于你。

【讨论】:

    【解决方案4】:

    通常是扩展名。例如。 Python 智能感知。这可能是一些旨在造福人类的科学项目的外包处理。手指交叉。

    2022 年更新:

    早些时候,您可以使用 VS Codes 内置的 Process Explorer 轻松找到它们。 帮助 > “打开进程资源管理器。” 但是较新的版本非常狡猾。它们似乎已经进化了,使得它们在窃取您的 CPU 时难以捕捉。免责声明:这种行为很可能是一个无意的故障,尽管它看起来并非如此。

    你能抓住它吗?

    这就像捉苍蝇一样艰难。截至 2022 年 2 月,当您尝试通过 vs 代码“帮助/打开进程资源管理器”或有时甚至赢得任务管理器来调查 CPU 使用情况时,它会像苍蝇一样停止/消失。然后它会在几个小时或一天内保持不活动状态。您忘记了它并忙于编码,却发现粉丝们都快疯了,因为它已经潜入再次活跃起来。较新版本的错误可能是这样编程的。 尽管如此,只要有足够的耐心,您有时可以抓住它们。这是一个实例,但在我滚动查看名称之前它就消失了。 VS Code Process manager

    解决方案:

    1. 我没有理由探查它超出限制,但一个小的监控脚本应该能够抓住罪魁祸首。

    2. 就我个人而言,我只需要删除“Visual Studio Code 的 Python 扩展 (Python IntelliSense - Pylance)”即可解决。

    【讨论】:

      猜你喜欢
      • 2015-11-09
      • 2014-07-07
      • 1970-01-01
      • 2017-02-20
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 2012-05-17
      相关资源
      最近更新 更多