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

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

  •  
  •   ViolaH · 16 天前 · 3516 次点击

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

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

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

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