V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ViolaH
V2EX  ›  macOS

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

  •  
  •   ViolaH · 9 天前 · 3264 次点击

    前几天终于找到了困扰我电脑卡顿一年多的元凶。这个问题从用 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
    

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

    第 1 条附言  ·  5 天前

    根据19楼的内容做一些补充:

    不一定是因为 Input Source Pro ,有自动切换输入法的应用都有可能引起这个 CursorUIViewService 出问题无响应卡顿,比如 Alfred 就能设置激活输入框时自动切到英文输入法。

    25 条回复    2024-12-03 20:31:16 +08:00
    zhongerbing
        1
    zhongerbing  
       9 天前   ❤️ 1
    我的 CursorUIViewService 占用好像不会很高,是不是和装了其他 app 有关
    gklll
        2
    gklll  
       9 天前   ❤️ 3
    Input Source Pro 问题很大,我 macOS 好几次卡死,找来找去最后定位到他,已卸载
    cincout
        3
    cincout  
       9 天前   ❤️ 1
    这个貌似是苹果中文输入法的问题, 卡顿的时候, 忍住卡顿, 不要用输入法, 鼠标点开活动监视器, 找到简体中文输入法, 结束进程, 就可以恢复正常
    weilongs
        4
    weilongs  
       9 天前   ❤️ 1
    我这里看只有 24M-25M 的占用,也许是其他 app 导致他内存飙升吧.
    MackMa
        5
    MackMa  
       9 天前   ❤️ 1
    我也遇到过这个问题,同样是安装了 Input Source Pro ,通过在站内搜索,追查到了 CursorUIViewService 这个进程。
    结合本贴的案例来看,估计是 Input Source Pro 的问题。卸载此软件后没有再复现,用微信输入法做平替了。
    ViolaH
        6
    ViolaH  
    OP
       9 天前
    @cincout 是不一样的问题,你说的简体输入法卡顿问题应该在 macOS 14.x 修复了
    ViolaH
        7
    ViolaH  
    OP
       9 天前
    @zhongerbing
    @gklll
    @weilongs
    @MackMa
    感谢回复,这么看可能是 Input Source Pro 导致 CursorUIViewService 出现问题,ISP 的作者也在 V 站,不过这个项目看起来已经被搁置或者放弃的样子,尝试 @iLionel 一下看看是否能定位问题。
    ViolaH
        8
    ViolaH  
    OP
       9 天前
    @gklll
    @MackMa
    请问有什么 ISP 的平替吗,以及微信输入法是不是没有日语
    ViolaH
        9
    ViolaH  
    OP
       9 天前
    在 Reddit 之类的国外社区也能找到 CursorUIViewService 无响应相关的问题,我想应该不都是使用了 Input Source Pro (这软件基本就国人用吧),可能也有一些其他的问题
    abigeater
        10
    abigeater  
       9 天前   ❤️ 1
    刚才看了下我 CursorUIViewService 在输入的时候也很飙高,但我没试用 input source pro ,试了 OP 的代码,希望能让我的 intel 末代再坚持几年。
    neptuno
        11
    neptuno  
       9 天前
    淦,今天早上我还以为是 cursor 挂了,kill 掉 CursorUIViewService 服务,直接系统卡死了。
    jarryson
        12
    jarryson  
       9 天前
    只有在时间机器,或者恢复备份后,才发现输入卡顿,无法忍受的卡顿
    SaiyZhao
        13
    SaiyZhao  
       9 天前
    我的更奇葩,新 m4 ,待机的时候发烫,看了下有两个 vs 的进程 Code Helper cpu 占用率 284%。。。。。
    airwt
        14
    airwt  
       8 天前
    这个功能能在设置中关闭么
    ViolaH
        15
    ViolaH  
    OP
       8 天前
    @airwt 目前没有关闭选项,只能用代码关闭
    ViolaH
        16
    ViolaH  
    OP
       8 天前
    @neptuno 对的,这个在无响应的时候不能 kill ,直接卡死系统,只能强制重启
    mimizi
        17
    mimizi  
       8 天前
    我这里在活动监视器里一直显示未响应,强制干掉整个 UI 就卡死了。
    gklll
        18
    gklll  
       8 天前
    不考虑 Input Source Pro 的话,macOS 自带输入法确实之前本身就有 bug ,但我记得最新的大版本还是上个大版本的末尾某个小版本开始,就修复了,如果你用的是最新的系统,应该不大会出问题
    ITisCool
        19
    ITisCool  
       8 天前   ❤️ 1
    不一定是因为 Input Source Pro ,有自动切换输入法的应用都有可能引起这个 CursorUIViewService 出问题无响应卡顿,比如 Alfred 就能设置激活输入框时自动切到英文输入法。这个 CursorUIViewService 的提供的功能是切换输入法时光标旁的那个图形提示气泡。之前我也出现切输入法后一两秒卡顿我还怀疑是微信输入法的问题,然后卸掉换了 RIME 用了一段时间问题依旧会出现,仔细一查才知道真凶是 CursorUIViewService ,禁用掉后再也没发生这样的卡了
    arvinxian
        20
    arvinxian  
       8 天前
    @ITisCool 笑死 刚看了一下 我的 CursorUIViewService 就是卡死状态
    Lenic
        21
    Lenic  
       7 天前
    Mark 感谢 OP
    amnaruto
        22
    amnaruto  
       5 天前
    文章没看完我就删了 Iuput source pro 。过了几天,刚才又发现出行这个问题了,一卡一卡的,错怪他了,哈哈
    PhDLuffy
        23
    PhDLuffy  
       4 天前
    mark ,感谢分享
    jerommix
        24
    jerommix  
       2 天前
    “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 。”
    ViolaH
        25
    ViolaH  
    OP
       2 天前
    @jerommix 这和我主楼提到的方法一样啊,另外不要发疑似 AI 生成的内容
    firstep
        26
    firstep  
       20 小时 12 分钟前
    我今天看任务管理器看到这个服务是红色的,并且进程后面括号显示“未响应”。
    我问 gemini 说是这样关,怎么和 OP 的不一样。

    # 修改系统配置文件(不推荐,风险较大)
    警告: 误操作可能会导致系统无法启动。请谨慎操作,并事先备份重要数据。
    打开 终端。
    输入以下命令并回车:
    Bash
    sudo nano /System/Library/LaunchAgents/com.apple.CursorUIViewService.plist
    请谨慎使用代码。

    在打开的文件中,找到 <dict> 标签,添加以下内容:
    XML
    <key>Disabled</key>
    <true/>
    请谨慎使用代码。

    按 Ctrl+O 保存,然后按 Ctrl+X 退出。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5457 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:44 · PVG 16:44 · LAX 00:44 · JFK 03:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.