Fire
Fire copied to clipboard
升级到macos Sequoia后应用窗口切换时卡顿
版本: v0.21.1(20240418113300) macos: 15.0 在使用 Command + Tab 切换应用时, 偶发卡顿, 大概在停留在当前应用3秒左右, 鼠标出现loading样式, 然后才会正常切到另一个应用,不确定是不是输入法的问题, 切换系统输入法后卡顿消失。
问题收到,我会抽时间验证此问题并处理,多谢反馈
复现环境:
分析过程:
运行过程中发现有如下 warning 输出:
可能关联的 issue: https://github.com/vChewing/vChewing-macOS/issues/226
稳定复现的方式:
- VSCode 切换到英文输入
- 切换到 Chrome 并把输入法切换到中文输入
- 切换到 VSCode
- 再尝试切换回 Chrome,若此时 Chrome 中没有输入框聚焦,则会卡 3 秒左右才成功切换到 Chrome。
- 运行日志会报出 timed out 警告。
结合关联 issue 分析可能的原因如下:
- MacOS 15.1 需要先背一个锅,个人设备有限,目前仅在此设备上复现此问题,所以 MacOS 版本升级导致的兼容问题是表层原因。
- 按关联 issue 的相关猜测,可能在 activateServer 中同步调用 client() 上的相关方法会导致问题。
解决方案
经过验证,可以在 DispatchQueue.main.async 中异步调用方法,没在出现卡顿问题。
閒扯一下與這個 PR 有關的事情。
其實可以直接用 Swift 原生的方法:
Task { @MainActor in
...
}
閒扯一下與這個 PR 有關的事情。
其實可以直接用 Swift 原生的方法:
Task { @MainActor in ... }
Thanks