如果你也遇到VSCode的CPU占用过高的问题,可以尝试使用官方自带的插件Bisect(扩展二分查找)功能来查找具体是哪个扩展出了问题。
找到"糟糕"的扩展可能很容易,也可能很困难。
打开扩展视图 ( Ctrl+Shift+X ),禁用扩展,重新加载窗口 (开发人员:重新加载窗口),然后检查问题是否仍然存在。
如果问题消失,则该扩展是"坏的",您就完成了。
否则,重新启用这个扩展并对下一个扩展重复该过程。
如果幸运的话,第一个扩展是"坏"的;如果你运气不好,这是最后一次延期。使用计算机科学语言,这意味着通过N扩展,您会遇到重复该过程的最坏情况O(N)(N 阶),以及平均情况O(N/2)。因为该算法是由人类(您)操作的,所以即使很小的值也N很费力。这就是扩展 bisect实用程序派上用场的地方。
VS Code 中的扩展 bisect 实用程序受到git bisect命令的启发。对于熟悉 Git 的人来说,此命令有助于找出存储库中的哪个提交引入了问题。
让我们使用一个示例:我安装了 24 个扩展,第 8 个扩展是"坏"的。我们知道迭代方法需要 8 个步骤。
Bisect 呢?
假设有 24 个扩展,Bisect 将 24 个扩展分成两半,每半有 12 个扩展,并且禁用后半部分的所有 12 个扩展....
在每一步中,bisect 都会将搜索空间减少一半。这些步骤现在以对数时间运行,从而产生平均和最坏情况下的性能O(log N)。这非常好,因为它的扩展性很好。如果有 24 个扩展,您需要 4 到 5 个步骤才能找到"坏"扩展,如果有 38 个扩展,则只需要多 1 个步骤。
解决办法操作
通过"Help: Start Extension Bisect "命令启动插件Bisect ,然后选择"can't reproduce表示CPU不再高企没有问题了"或"can reproduce还是有问题",直到识别出"不良"扩展。一旦确定,您可以选择报告该扩展的问题。