前几天终于找到了困扰我电脑卡顿一年多的元凶。这个问题从用 Sonoma 的时候就有,升级了 Sequoia 问题也没有改善。以为是 M1 性能不够了,结果换了 M4 问题还是没有解决。
我的具体情况是:
后来才发现,根源在苹果 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
希望对有类似问题的朋友有所帮助!
根据19楼的内容做一些补充:
不一定是因为 Input Source Pro ,有自动切换输入法的应用都有可能引起这个 CursorUIViewService 出问题无响应卡顿,比如 Alfred 就能设置激活输入框时自动切到英文输入法。
1
zhongerbing 16 天前 1
我的 CursorUIViewService 占用好像不会很高,是不是和装了其他 app 有关
|
2
gklll 16 天前 3
Input Source Pro 问题很大,我 macOS 好几次卡死,找来找去最后定位到他,已卸载
|
3
cincout 16 天前 1
这个貌似是苹果中文输入法的问题, 卡顿的时候, 忍住卡顿, 不要用输入法, 鼠标点开活动监视器, 找到简体中文输入法, 结束进程, 就可以恢复正常
|
4
weilongs 16 天前 1
我这里看只有 24M-25M 的占用,也许是其他 app 导致他内存飙升吧.
|
5
MackMa 16 天前 1
我也遇到过这个问题,同样是安装了 Input Source Pro ,通过在站内搜索,追查到了 CursorUIViewService 这个进程。
结合本贴的案例来看,估计是 Input Source Pro 的问题。卸载此软件后没有再复现,用微信输入法做平替了。 |
7
ViolaH OP @zhongerbing
@gklll @weilongs @MackMa 感谢回复,这么看可能是 Input Source Pro 导致 CursorUIViewService 出现问题,ISP 的作者也在 V 站,不过这个项目看起来已经被搁置或者放弃的样子,尝试 @iLionel 一下看看是否能定位问题。 |
9
ViolaH OP 在 Reddit 之类的国外社区也能找到 CursorUIViewService 无响应相关的问题,我想应该不都是使用了 Input Source Pro (这软件基本就国人用吧),可能也有一些其他的问题
|
10
abigeater 16 天前 1
刚才看了下我 CursorUIViewService 在输入的时候也很飙高,但我没试用 input source pro ,试了 OP 的代码,希望能让我的 intel 末代再坚持几年。
|
11
neptuno 16 天前
淦,今天早上我还以为是 cursor 挂了,kill 掉 CursorUIViewService 服务,直接系统卡死了。
|
12
jarryson 16 天前
只有在时间机器,或者恢复备份后,才发现输入卡顿,无法忍受的卡顿
|
13
SaiyZhao 16 天前
我的更奇葩,新 m4 ,待机的时候发烫,看了下有两个 vs 的进程 Code Helper cpu 占用率 284%。。。。。
|
14
airwt 16 天前
这个功能能在设置中关闭么
|
17
mimizi 16 天前
我这里在活动监视器里一直显示未响应,强制干掉整个 UI 就卡死了。
|
18
gklll 16 天前
不考虑 Input Source Pro 的话,macOS 自带输入法确实之前本身就有 bug ,但我记得最新的大版本还是上个大版本的末尾某个小版本开始,就修复了,如果你用的是最新的系统,应该不大会出问题
|
19
ITisCool 15 天前 1
不一定是因为 Input Source Pro ,有自动切换输入法的应用都有可能引起这个 CursorUIViewService 出问题无响应卡顿,比如 Alfred 就能设置激活输入框时自动切到英文输入法。这个 CursorUIViewService 的提供的功能是切换输入法时光标旁的那个图形提示气泡。之前我也出现切输入法后一两秒卡顿我还怀疑是微信输入法的问题,然后卸掉换了 RIME 用了一段时间问题依旧会出现,仔细一查才知道真凶是 CursorUIViewService ,禁用掉后再也没发生这样的卡了
|
21
Lenic 15 天前
Mark 感谢 OP
|
22
amnaruto 12 天前
文章没看完我就删了 Iuput source pro 。过了几天,刚才又发现出行这个问题了,一卡一卡的,错怪他了,哈哈
|
23
PhDLuffy 12 天前
mark ,感谢分享
|
24
jerommix 9 天前
“cursoruiviewservice 是显示新文本字段光标的进程。这是当您打开 Caps Lock 或当前输入语言指示器时出现的微小向上箭头图标。用户表示,此过程有时会消耗大量 CPU 和 RAM 内存并且变得无响应。当使用 Caps Lock 键或仅选中文本字段而不键入任何内容时,可能会发生这种情况。
修复 cursoruiviewservice 滞后的最简单方法是使用 Terminal 禁用该进程。为此,请打开终端窗口并键入以下命令: (在任何时候输入命令都要注意) sudo defaults write /Library/Preferences/FeatureFlags/Domain/UIKit.plist redesigned_text_cursor -dict-add Enabled -bool NO 系统将提示您输入登录密码。您可能还需要重新启动 Mac 。” |
26
firstep 8 天前
我今天看任务管理器看到这个服务是红色的,并且进程后面括号显示“未响应”。
我问 gemini 说是这样关,怎么和 OP 的不一样。 # 修改系统配置文件(不推荐,风险较大) 警告: 误操作可能会导致系统无法启动。请谨慎操作,并事先备份重要数据。 打开 终端。 输入以下命令并回车: Bash sudo nano /System/Library/LaunchAgents/com.apple.CursorUIViewService.plist 请谨慎使用代码。 在打开的文件中,找到 <dict> 标签,添加以下内容: XML <key>Disabled</key> <true/> 请谨慎使用代码。 按 Ctrl+O 保存,然后按 Ctrl+X 退出。 |