指南/Cursor占用CPU过高

Cursor占用CPU过高,或让Mac掉电很快?如何找出原因

Atta 🐬

Vitals创始人

发布于

简要回答

Cursor的构造和浏览器一样,所以活动监视器把它显示为好几个进程:Cursor、每个窗口一个的Cursor Helper (Renderer)、负责扩展的Cursor Helper (Plugin),以及Cursor Helper (GPU)。CPU占用过高几乎总是出自三处之一:某个扩展、大型项目中的索引或文件监视,或者代理启动后一直开着的工具,例如开发服务器或代码检查工具。在Cursor中选取Help → Open Process Explorer,就能看出是哪一种。Vitals是一款Mac系统监控工具,把Cursor显示为一个App,并拆分为窗口、扩展和图形,还会列出在每个项目文件夹中工作的所有进程。

如何找出Cursor在做什么

  1. 01 打开活动监视器,点按“CPU”,在搜索栏中输入Cursor。留意哪一行在忙:Cursor Helper (Plugin)是你的扩展,Cursor Helper (Renderer)是一个窗口,Cursor Helper (GPU)负责绘制。
  2. 02 在Cursor中选取Help → Open Process Explorer。它按名称列出Cursor自己的进程,附上CPU和内存,让你看出是扩展主机、某个窗口、文件监视器还是一次搜索。
  3. 03 如果原因是扩展,打开Command Palette(⇧⌘P)并运行Help: Start Extension Bisect。Cursor会一半一半地关闭扩展,直到找出是哪一个。
  4. 04 清空活动监视器的搜索栏,再按“% CPU”排序。看看排在前面的有没有node、next-server、biome和类似的工具:它们不是Cursor本身,而是Cursor或它的代理启动的东西。
  5. 05 用⌘Q完全退出Cursor,观察一分钟。上一步中仍在运行的,就是被留下的;选中它,点按活动监视器工具栏中的停止按钮。

要一次性判断是不是扩展的问题,退出Cursor,然后在“终端”中用cursor --disable-extensions启动它。如果Mac不再发热,原因就是某个扩展。

Cursor是Visual Studio Code的分支,两者都是Electron App:一个浏览器引擎、一个运行扩展的Node.js服务,再加上每个窗口一个进程。此外,Cursor会给你的项目建立索引,好让它的AI能够搜索;它的代理还会替你在终端里运行命令。每一项都可能让CPU一直忙,每一项显示的名称不同,解决方法也不同。下表把你看到的名称与它是什么对应起来。

Cursor的各个进程是什么

你看到的现象它是什么怎么做
Cursor Helper (Plugin)占用CPU过高 扩展主机:所有扩展都在里面运行 用Extension Bisect,或停用扩展后启动
Cursor Helper (Renderer)占用CPU过高 一个窗口,包括它的编辑器和聊天 关闭很长的聊天和不用的窗口;重新载入窗口
rg进程占用CPU过高 搜索和索引在读取项目的文件 把大文件夹排除在搜索和索引之外
Cursor Helper (GPU)很忙 绘制界面 通常很短暂;如果一直很高,就更新Cursor
node、tsc、biome占用很高 从Cursor启动的开发服务器、类型检查器或代码检查工具 在Cursor的终端里停止它,或在活动监视器中退出它

扩展:最常见的原因

所有扩展都在同一个进程Cursor Helper (Plugin)里运行,所以一个扩展在忙,整个进程看起来都有嫌疑。常见的是那些每敲一个键就把大型项目重新检查一遍的代码检查工具、格式化工具和语言服务器。Extension Bisect重启几次就能找出是哪一个,比一个一个地关要快。

第一次设置Cursor时从Visual Studio Code带过来的扩展也值得看一看:有些和Cursor已有的功能重复。把不用的移除;停用的扩展不占任何资源。

大型项目:索引和文件监视

打开项目时,Cursor会为它的AI建立索引,并监视文件的变化。在大型仓库里,或者有很大的生成文件夹的仓库里,这会让好几个核心忙上很久;Cursor论坛上也有人反映,在非常大的项目里rg搜索进程一直停不下来。

别让生成的文件夹和第三方代码文件夹被算进去。把它们加到项目根目录的.cursorignore文件中,并加到Settings里的files.watcherExclude和search.exclude中。要紧的是构建输出、依赖文件夹和缓存。然后到Cursor Settings → Indexing & Docs中查看索引是否已经完成。

代理留下来没关的东西

Cursor的代理会替你运行命令:用来检查成果的开发服务器、类型检查器、测试监视器。任务结束或聊天关闭后,这些进程不一定会停。它们是没有窗口的普通进程,屏幕上没有任何东西提示它们还在;一个卡住的代码检查工具,或者一个占着好几GB的开发服务器,可以一连运行好几天。

这也是Cursor关掉之后好像还在耗电的原因:Cursor已经退出,它启动的东西却没有。退出后按上面的步骤查看活动监视器。父进程已经不在的进程叫作孤儿进程,人们问起僵尸进程时,指的通常就是它。

电池:正常情况是怎样的

一个Electron编辑器,加上边打字边作答的AI模型,耗能比纯文本编辑器多,这部分是这个工具的代价。不正常的是你没在打字时CPU占用仍然很高。如果Cursor闲着的时候,活动监视器的“能耗”标签页仍把它排在前面,就按上面的步骤逐一排查。要了解更全面的情况,请参阅是什么在消耗Mac的电量。

Vitals能多做什么

Vitals把Cursor显示为一个App并标明各个部分,它启动的进程则按项目分组。

  • Cursor显示为一行,附上总内存、CPU和能耗;点按它可分别查看窗口、扩展和图形
  • “项目”标签页:在某个项目文件夹中工作的所有进程,不管是哪个App启动的,附上内存、CPU和监听的端口
  • 指出闲置着没关的开发服务器,并可让你停止它们
  • 某个App连续几分钟占用CPU或内存不断增长时发送通知
  • 按小时显示哪个App耗能最多,让你看出是Cursor还是它启动的东西

须知

  • Vitals显示的是扩展所在的进程,而不是其中哪个扩展在忙。那要靠Cursor的Extension Bisect来找。
  • Vitals绝不会自行退出任何东西。“退出”和“停止”只在你点按时才执行。
购买Vitals $9 首发期$9,之后$29。14天内可退款。

常见问题

Cursor为什么在Mac上占用这么多CPU?

通常是某个扩展、大型项目中的索引,或者代理启动后一直开着的工具。在Cursor中选取Help → Open Process Explorer,看看它的哪个进程在忙。

Cursor Helper (Plugin)是什么?

运行Cursor所有扩展的进程。它占用CPU过高时,说明有一个扩展在忙。从Command Palette运行Help: Start Extension Bisect找出是哪一个。

Cursor Helper (Renderer)是什么?

一个Cursor窗口:它的编辑器、面板和聊天。每个窗口各有一个。关闭很长的聊天并重新载入窗口,可以让它的内存和CPU降下来。

Cursor为什么让MacBook掉电很快?

Cursor是一个Electron App,还有AI模型边打字边工作,耗能比普通编辑器多。闲置时也大量耗电,说明有扩展、索引,或者一直开着的开发服务器或构建工具在作怪。

退出Cursor后Mac为什么还是很烫?

Cursor启动的某个东西还在运行:开发服务器、类型检查器或代码检查工具。在活动监视器中按“% CPU”排序,找找node、tsc或biome。

如何让Cursor不索引某个文件夹?

把这个文件夹加到项目根目录的.cursorignore文件中。值得排除的是构建输出和依赖文件夹。

有没有能显示Cursor在Mac上占用情况的App?

Vitals把Cursor显示为一个App,并拆分为窗口、扩展和图形;它的“项目”标签页会列出在每个项目文件夹中运行的所有进程,并指出闲置着没关的开发服务器。

术语表中的相关条目

更多指南