Repository navigation
Replies: 3 comments
|
卸载全部插件再看看,我遇到过一些插件会导致会话加载卡慢,得逐个排查,最快的方式是开个新 profile,看看切工作区和会话还卡不卡。 |
|
找到原因了(更新)——是第三方插件 在同一个 profile 里把它禁用之后:
用进程计数器复核,效果很明显(同样是点几次「新建会话」):
另外排除一个可能性:重启客户端本身没用。我中途重启过一次,卡顿照旧;只有禁用这个插件之后才变好。 这个插件为什么会造成这么大的开销它看起来是「大量 agent 定义 + subagent 注入」型的插件:
这和我在这里读到的 #2606("Subagent catalog cold reads replay full session logs and cause sustained high CPU")描述的现象一致:会话的
我实测每会话约 1,636 次读,远高于列表扫描本身的约 9.5 次/会话,量级上也支持这个推测。 结论: 如果这个推测有哪里不对,或者有更准确的机制解释,非常欢迎指正。 |
更新(2026-10-05):根因已定位并完成最小复现 + CPU profile 取证先更正本贴的一个方向:开头提到的「旧格式会话迁移」那条线已被证伪 —— 一、最小复现:必须两个插件同时启用同一台机、同一份会话库、每次重启客户端,逐个开关验证:
⇒ 这是交互型问题,不是单插件问题。 二、宿主进程的 CPU profile
自耗时占「忙」时间(52.6 秒)的比例:
而两个插件自己的代码合计只占 0.07%(约 37 ms)。 三、机制把上面的构成串起来,那 53 秒里内核在反复做同一件事:
这与插件仓库里的 采集方式(供复现参考):DSH 桌面端外壳自带 四、处置建议
完整证据(含热点表、逐秒时间线、机制推演)已提交给该插件作者: 给后来人的一句话结论: |
Uh oh!
There was an error while loading. Please reload this page.
Desktop 0.2.0-rc.2 (Windows): clicking "New Session" or switching workspaces takes 20+ seconds. Sharing what I tried and what did NOT work — looking for a practical workaround.
环境
@deepseek-ai/dsh-desktop 0.2.0-rc.2(Electron 44 / Node 24)现象
试过的办法与结果
workspace.json里的一个 id 列表,磁盘文件一个不动,而列表扫描是按物理目录走的(后来在 #5961 看到完全相同的结论)@michengai/dsh-archive-managerworkspace与session-projection-cache,再用自己的同名服务顶替,一禁工作区就空白一个顺带的观察(也许对排查有用)
点开一个旧格式的会话时,宿主会自动把它整份重写成当前格式,在同一个目录里生成
session.v4.jsonl.zstd,而旧的session.jsonl.zstd/session.v3.jsonl.zstd会留在原地不删。我们就是借这个机制,把 68 个旧会话逐个点开、全部迁成了 v4(旧格式会话数从 68 降到 0)。格式是统一了,但卡顿完全没有改善——所以这个方向大概不是问题所在,仅供其他人参考:迁移旧格式会话不会带来性能收益。
实测到的情况
用进程计数器(0.2 秒粒度)观察宿主进程:
所以看起来不只是「列表扫描」的问题,而是打开/切换会话时会把会话日志整份读一遍再解码。这也符合「第一次慢、第二次快」:第二次内容已经在内存里了。
想请教的问题
我已经读过 #7142、#5961、#8065、#8631、#1316、#6511 这些相关讨论,知道这是 O(sessions) 且没有缓存的老问题;主要想请教大家在等到修复之前是怎么让它变得可用的。
谢谢!
All reactions