Closed wangbiye closed 1 month ago
对于这种 stream 请求服务,目前 Easydict 界面刷新方式确实比较糟糕,会导致卡顿,但 2.7 版本相比 2.6,好像只是用 Swift 重写了 OpenAI 服务,界面相关的逻辑没有改,按理说接口请求方面应该不会有太大影响。
@Jerry23011 你测试确认一下这个问题。
我也遇到了这个问题 2.7.1 明显卡顿
@tianzhuwei 方便发一下你的 Mac 型号和系统版本吗
对于这种 stream 请求服务,目前 Easydict 界面刷新方式确实比较糟糕,会导致卡顿,但 2.7 版本相比 2.6,好像只是用 Swift 重写了 OpenAI 服务,界面相关的逻辑没有改,按理说接口请求方面应该不会有太大影响。
我用 Instrument 跑了一下,确实有明显 CPU 高占用,在内置 AI 翻译服务中同样可以复现,严重情况下还会直接导致 app 挂起转彩虹圈,但看起来像是 objc 的问题
我同样复现了#538 的问题,这个是因为查单词因 result 内容过长没渲染出来导致的
@tianzhuwei 方便发一下你的 Mac 型号和系统版本吗
Apple M1 Version 14.4.1 (23E224)
不不,目前 OpenAI 翻译这种频繁刷新的 stream 服务会导致 CPU 高占用,甚至界面卡顿,这是已知问题,这个问题比较棘手,暂时没办法完全解决。
但我昨天突然想到了一个优化方案,应该能很大程度上缓解这种卡顿问题,晚上我会发个 PR 测试。
我同样复现了https://github.com/tisfeng/Easydict/issues/538 的问题,这个是因为查单词因 result 内容过长没渲染出来导致的
目前查询窗口界面的刷新方式有缺陷,有时会刷新失败,导致卡在某个位置。如果是偶尔出现这种问题,可以暂时忽略,稍后我们再想办法解决。
使用 2.6.1 和 2.7.1 差别还是挺大的, 感觉 2.7.1 能让电脑都卡顿; 当我输入这些文字的时候, 开启的是 2.7.1 比较卡, 退出之后输入文字都流畅了; 两个版本效果看视频
@Jerry23011 你使用相同的接口,分别在 2.6.1 和 2.7.1 版本下,都只开启一个 OpenAI 服务,对比测试看看它们的刷新流畅度是否有明显区别。
我们需要确认是否是 Swift 重写 OpenAI 导致了这个问题。
我们需要确认是否是 Swift 重写 OpenAI 导致了这个问题。
测试了一圈我觉得不像是 Swift 导致的,我测试用 main 分支 tag 2.6.1 和 2.7.1,在两个版本下 OpenAI 翻译都用 gpt-3.5-turbo
流畅度几乎看不出差别,Instrument 中也同样
我看到 @wangbiye 在 2.7.1 上用的也是 gpt-3.5-turbo
但还是有明显卡顿,这点是我没测试出来的
因为 2.7.1 加入了自定义模型,如果用 gpt-3.5-turbo-16k
就能明显感觉卡顿,进程也会直接挂起
因为内置AI翻译服务
也用的 BaseOpenAIService
,我测试了一下各个模型,其中内置的8个模型里前两个都会造成卡顿挂起,但是后几个都不会,我觉得这个可能还和不同服务 stream 的速度有关?一些服务的 stream 速度太快,导致界面刷新速度跟不上 stream 的速度
我在 2.6.1 代码中手动添加了 gpt-3.5-turbo-16k
,我的机型上也不会出现卡顿,但是同样是这个模型在 2.7.1 中就会直接导致 main thread 挂起
推测会不会是同样的模型在因为 Swift 重写后 parse 的性能提升所以 stream 速度提升,导致刷新速度跟不上,在一些老机型上更为明显(?)
请先确认以下事项:
问题描述
13-inch, 2020, Four Thunderbolt 3 ports 2 GHz 四核Intel Core i5 macOS 14.4.1 (23E224)
使用 2.6.1 和 2.7.1 差别还是挺大的, 感觉 2.7.1 能让电脑都卡顿; 当我输入这些文字的时候, 开启的是 2.7.1 比较卡, 退出之后输入文字都流畅了; 两个版本效果看视频
2.6.1 效果 https://github.com/tisfeng/Easydict/assets/9958811/d275a41a-f0e6-4d3d-a062-79cc684fba9e
2.7.1 效果 https://github.com/tisfeng/Easydict/assets/9958811/06db5807-4806-4d06-8d92-7202fa9afd5d
该问题是否可以稳定重现?
可重现
重现步骤
在我电脑上只要安装 2.7.1 版本就是这种效果
截图
已提供视频
期望结果
达到 2.6.1 的流程效果
解决方案(可选)
No response
设备型号 && 系统版本
13-inch, 2020, Four Thunderbolt 3 ports, macOS 14.4.1 (23E224)
是否愿意提交 PR 解决该问题?