Files
qiming/qimingclaw/crates/agent-electron-client/docs/optimization/MACOS-FIRST-MESSAGE-PERF-REPORT-2026-03-31.md

6.7 KiB
Raw Blame History

macOS 平台首消息性能测试报告(连续新会话)

报告日期: 2026-03-31
测试平台: macOS
引擎类型: qimingcode
日志来源: /Users/apple/.qimingclaw/logs/perf.2026-03-31.log00:17:30 ~ 00:20:39
参考模板: docs/optimization/MACOS-FIRST-MESSAGE-PERF-REPORT-2026-03-24.md


执行摘要

本报告针对“连续新开会话”的首条消息首次响应性能进行核对,口径为:

  • 主要口径:create-workspace -> sse.firstToken
  • 辅助口径:/chat received -> 首 token/chat + sendToFirstUpdate

本轮共观测到 6 次新会话尝试:

  1. 5 次完整会话(均包含 sse.firstToken
  2. 1 次中断会话(仅 create-workspace,未进入 /chat

关键发现

指标 本轮结果5 次完整会话) 说明
首次响应create-workspace -> firstToken 平均 9.307s8.063s ~ 10.928s 用户体感“首字出来”耗时
/chat 总耗时 平均 2.955s2.060s ~ 3.697s 前置阶段
sendToFirstUpdate 平均 6.304s5.885s ~ 7.699s 首 token 等待阶段,主瓶颈
/chatensureEngine 平均 2.042s1.367s ~ 3.011s A 段内部主耗时
稳定性 5/5 完整会话成功 本时间窗内未见 newSession/chat 报错

一、测试会话数据

1.1 五次完整新会话(首消息)

会话 project_id rid session_id create-workspace /chat ensureEngine sessionSetup sse.connect sse.firstToken 首次响应create->firstToken
S1 1564329 0d3f44ba ses_2c076bcb0ffeNfAHi2Yiu6tpru 00:17:30.613 3169ms 1672ms 1495ms 00:17:33.851 00:17:39.723 9.110s
S2 1564331 b2d8d26f ses_2c075ef03ffeMiHTQKKR4h0FkZ 00:18:23.562 2652ms 1982ms 669ms 00:18:26.284 00:18:32.234 8.672s
S3 1564332 1b4b5eeb ses_2c07552afffeFIQODrEZMYpydC 00:19:02.567 3697ms 3011ms 683ms 00:19:06.309 00:19:12.328 9.761s
S4 1564333 c00c4d52 ses_2c074e299ffe6qfg8LTgbN2lET 00:19:32.857 2060ms 1367ms 692ms 00:19:35.003 00:19:40.920 8.063s
S5 1564334 0d815846 ses_2c0742965ffebmYiW5e8JIydTk 00:20:19.169 3199ms 2179ms 1019ms 00:20:22.411 00:20:30.097 10.928s

1.2 中断会话(仅创建工作区)

时间 rid 事件
00:18:08.206 5mia20hej create-workspace,未进入 /chat,不纳入首次响应统计

二、性能分析(首消息首次响应口径)

2.1 首次响应时间结构(均值)

平均首次响应create-workspace -> firstToken: 9.307s
├── create-workspace -> /chat received: ~0.047s0.5%
├── A: /chat received -> /chat 返回: 2.955s31.8%
└── B: /chat 返回 -> firstToken: 6.304s67.7%

结论:

  • 若目标是“新会话首条消息尽快出首字”,B 段是主瓶颈(约 2/3
  • A 段次之;其中仍以 ensureEngine 为主,但总体占端到端首响仅约 22%。

2.2 A 段内部(/chat 阶段)分解

指标 平均耗时 占 A 段
ensureEngine 2042ms 69.1%
sessionSetup/chat 其余 912ms 30.9%

说明:

  • A 段仍有优化空间,但不是首响的第一优先级。
  • 本轮 A 段波动2.060s~3.697s)主要来自 ensureEnginesessionSetup 抖动。

2.3 抖动观察

阶段 最小 最大 波动特征
/chat 2060ms 3697ms 中等波动
sendToFirstUpdate 5885ms 7699ms 中等偏高S5 明显偏慢
firstToken->end_turn 8008ms 25402ms 该段波动极大(与“首响”无关,但影响整体完成时间)

三、结论与建议

3.1 结论

  1. 本轮“新会话首条消息首次响应”平均约 9.3s
  2. 主要瓶颈不在 /chat 前置,而在 /chat 返回后等待首 tokenB 段)
  3. 本时间窗内 5 次完整会话均成功,未出现上一轮的 newSession 内部错误。

3.2 建议(按首响收益排序)

  1. 先优化 sendToFirstUpdate(目标先压到 <5s再冲 <4s
  2. 再收敛 ensureEngine 抖动(优先把 3s 档位压回 2s 内)。
  3. 保留当前 sse.firstToken 埋点,后续把优化验收口径统一为 create-workspace -> sse.firstToken

附录:关键日志摘录

[2026-03-31 00:17:30.613] [PERF] create-workspace: 66ms  rid=[j197gc94h]
[2026-03-31 00:17:33.838] [PERF] /chat: 3169ms  rid=0d3f44ba  (parseBody=0ms validate=1ms workspace=0ms engine=1672ms chat=1496ms)
[2026-03-31 00:17:39.723] [PERF] sse.firstToken  session=ses_2c076bcb0ffeNfAHi2Yiu6tpru
[2026-03-31 00:17:39.723] [PERF] acp.prompt.sendToFirstUpdate: 5885ms  sessionId=ses_2c076bcb0ffeNfAHi2Yiu6tpru

[2026-03-31 00:18:23.562] [PERF] create-workspace: 49ms  rid=[fg7ng07b6]
[2026-03-31 00:18:26.269] [PERF] /chat: 2652ms  rid=b2d8d26f  (parseBody=0ms validate=1ms workspace=0ms engine=1982ms chat=669ms)
[2026-03-31 00:18:32.234] [PERF] sse.firstToken  session=ses_2c075ef03ffeMiHTQKKR4h0FkZ
[2026-03-31 00:18:32.234] [PERF] acp.prompt.sendToFirstUpdate: 5965ms  sessionId=ses_2c075ef03ffeMiHTQKKR4h0FkZ

[2026-03-31 00:19:02.567] [PERF] create-workspace: 51ms  rid=[fy8f9owgd]
[2026-03-31 00:19:06.296] [PERF] /chat: 3697ms  rid=1b4b5eeb  (parseBody=1ms validate=0ms workspace=1ms engine=3011ms chat=684ms)
[2026-03-31 00:19:12.328] [PERF] sse.firstToken  session=ses_2c07552afffeFIQODrEZMYpydC
[2026-03-31 00:19:12.328] [PERF] acp.prompt.sendToFirstUpdate: 6033ms  sessionId=ses_2c07552afffeFIQODrEZMYpydC

[2026-03-31 00:19:32.857] [PERF] create-workspace: 72ms  rid=[2kfaik1wz]
[2026-03-31 00:19:34.980] [PERF] /chat: 2060ms  rid=c00c4d52  (parseBody=0ms validate=0ms workspace=1ms engine=1367ms chat=692ms)
[2026-03-31 00:19:40.920] [PERF] sse.firstToken  session=ses_2c074e299ffe6qfg8LTgbN2lET
[2026-03-31 00:19:40.920] [PERF] acp.prompt.sendToFirstUpdate: 5940ms  sessionId=ses_2c074e299ffe6qfg8LTgbN2lET

[2026-03-31 00:20:19.169] [PERF] create-workspace: 46ms  rid=[e6dtwydgo]
[2026-03-31 00:20:22.398] [PERF] /chat: 3199ms  rid=0d815846  (parseBody=0ms validate=1ms workspace=0ms engine=2179ms chat=1019ms)
[2026-03-31 00:20:30.097] [PERF] sse.firstToken  session=ses_2c0742965ffebmYiW5e8JIydTk
[2026-03-31 00:20:30.097] [PERF] acp.prompt.sendToFirstUpdate: 7699ms  sessionId=ses_2c0742965ffebmYiW5e8JIydTk

报告生成时间: 2026-03-31
备注: 本报告仅针对“新会话首条消息首次响应first token”口径不包含完整回答结束耗时优化判断。