终于发现了让我的 Mac 卡了一年多的真凶: CursorUIViewService

31 天前
 ViolaH

前几天终于找到了困扰我电脑卡顿一年多的元凶。这个问题从用 Sonoma 的时候就有,升级了 Sequoia 问题也没有改善。以为是 M1 性能不够了,结果换了 M4 问题还是没有解决。

我的具体情况是:

  1. 打开 Edge 浏览器时会有一定概率掉帧、卡顿。
  2. 我日常需要在中日英三种语言间切换,时间久了后,输入法切换会变得异常缓慢,甚至会吞字。
  3. 电脑开机时间长了(一两天),整个系统都会变卡。

后来才发现,根源在苹果 Sonoma 系统中的一个新增功能——CursorUIViewService(光标附近的输入法切换指示器)。这个服务有时存在内存泄漏的 bug:我的电脑开机运行一两天后,其内存占用会飙升至 1GB 以上,并且无响应,导致系统变得极其卡顿。即便没有内存泄漏,每当输入焦点切换触发输入法变化时,系统都会短暂卡顿。

我的电脑安装了 Input Source Pro (一个控制不同应用默认输入法行为的 App ),其中设置了 Edge 的地址栏默认使用英文输入法。当系统当前处于非英文输入法状态时,打开 Edge 会触发输入法切换,这个切换过程同时触发了 CursorUIViewService 的输入法指示器状态更新,从而导致 Edge 卡顿。

我以前也想过可能是 CursorUIViewService 的问题,无响应的时候也手动杀过服务,但始终没想到和 Edge 之间有什么关系,这下破案了。

最后在网上找到了禁用 CursorUIViewService 的方法。通过以下代码彻底禁用后,电脑终于恢复流畅,再也没有卡顿问题。可以使用 Input Source Pro 自带的输入法指示器作为平替。

代码(运行后会立即重启系统):

sudo mkdir -p /Library/Preferences/FeatureFlags/Domain && sudo /usr/libexec/PlistBuddy -c "Add 'redesigned_text_cursor:Enabled' bool false" /Library/Preferences/FeatureFlags/Domain/UIKit.plist && sudo shutdown -r now

希望对有类似问题的朋友有所帮助!

3939 次点击
所在节点    macOS
25 条回复
zhongerbing
31 天前
我的 CursorUIViewService 占用好像不会很高,是不是和装了其他 app 有关
gklll
31 天前
Input Source Pro 问题很大,我 macOS 好几次卡死,找来找去最后定位到他,已卸载
cincout
31 天前
这个貌似是苹果中文输入法的问题, 卡顿的时候, 忍住卡顿, 不要用输入法, 鼠标点开活动监视器, 找到简体中文输入法, 结束进程, 就可以恢复正常
weilongs
31 天前
我这里看只有 24M-25M 的占用,也许是其他 app 导致他内存飙升吧.
MackMa
31 天前
我也遇到过这个问题,同样是安装了 Input Source Pro ,通过在站内搜索,追查到了 CursorUIViewService 这个进程。
结合本贴的案例来看,估计是 Input Source Pro 的问题。卸载此软件后没有再复现,用微信输入法做平替了。
ViolaH
31 天前
@cincout 是不一样的问题,你说的简体输入法卡顿问题应该在 macOS 14.x 修复了
ViolaH
31 天前
@zhongerbing
@gklll
@weilongs
@MackMa
感谢回复,这么看可能是 Input Source Pro 导致 CursorUIViewService 出现问题,ISP 的作者也在 V 站,不过这个项目看起来已经被搁置或者放弃的样子,尝试 @iLionel 一下看看是否能定位问题。
ViolaH
31 天前
@gklll
@MackMa
请问有什么 ISP 的平替吗,以及微信输入法是不是没有日语
ViolaH
31 天前
在 Reddit 之类的国外社区也能找到 CursorUIViewService 无响应相关的问题,我想应该不都是使用了 Input Source Pro (这软件基本就国人用吧),可能也有一些其他的问题
abigeater
31 天前
刚才看了下我 CursorUIViewService 在输入的时候也很飙高,但我没试用 input source pro ,试了 OP 的代码,希望能让我的 intel 末代再坚持几年。
neptuno
31 天前
淦,今天早上我还以为是 cursor 挂了,kill 掉 CursorUIViewService 服务,直接系统卡死了。
jarryson
31 天前
只有在时间机器,或者恢复备份后,才发现输入卡顿,无法忍受的卡顿
SaiyZhao
31 天前
我的更奇葩,新 m4 ,待机的时候发烫,看了下有两个 vs 的进程 Code Helper cpu 占用率 284%。。。。。
airwt
31 天前
这个功能能在设置中关闭么
ViolaH
31 天前
@airwt 目前没有关闭选项,只能用代码关闭
ViolaH
31 天前
@neptuno 对的,这个在无响应的时候不能 kill ,直接卡死系统,只能强制重启
mimizi
31 天前
我这里在活动监视器里一直显示未响应,强制干掉整个 UI 就卡死了。
gklll
31 天前
不考虑 Input Source Pro 的话,macOS 自带输入法确实之前本身就有 bug ,但我记得最新的大版本还是上个大版本的末尾某个小版本开始,就修复了,如果你用的是最新的系统,应该不大会出问题
ITisCool
31 天前
不一定是因为 Input Source Pro ,有自动切换输入法的应用都有可能引起这个 CursorUIViewService 出问题无响应卡顿,比如 Alfred 就能设置激活输入框时自动切到英文输入法。这个 CursorUIViewService 的提供的功能是切换输入法时光标旁的那个图形提示气泡。之前我也出现切输入法后一两秒卡顿我还怀疑是微信输入法的问题,然后卸掉换了 RIME 用了一段时间问题依旧会出现,仔细一查才知道真凶是 CursorUIViewService ,禁用掉后再也没发生这样的卡了
arvinxian
30 天前
@ITisCool 笑死 刚看了一下 我的 CursorUIViewService 就是卡死状态

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1092410

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX