今年8月,Anthropic在为期两周的冲刺中,将 claude.ai 网站及 Claude 桌面应用的核心用户体验速度提升了约3倍。针对用户长期反馈的速度痛点,团队仅通过一个 Slack 频道协调工作,让 Claude 深度参与每个讨论线程,最终验证了优化的可行性。

团队聚焦于占据95%用户活动的四个关键流程。在第95百分位(P95)指标上,claude.ai 全新加载后首次可输入页面的时间从3.1秒缩短至0.55秒;启动新 Claude Code 会话的时间从0.8秒缩短至0.3秒;加载 Claude Cowork 云端会话的时间从2.6秒缩短至0.73秒。综合估算,此举每天为用户节省数万小时等待时间。

此次冲刺使用了能力大致相当于 Opus 5.5 的内部研究模型 Claude Tag(测试版)。Claude 负责发现瓶颈、构建基准测试、部署改进并监控每次发布,人类团队则负责设定目标、权衡利弊及审批变更。凭借该闭环机制,团队合并了三千多项更改,且未发生任何面向客户的事故或回滚。

任务简报与基线建立

冲刺伊始,团队在 Slack 频道中为 Claude 设定固定指令,要求其促进性能相关工作,包括监控回归、评估遥测数据、维护可观测性仪表板及主动实施解决方案。Claude 通过 Datadog MCP 服务器分析数据,锁定了启动应用、开始对话、加载现有对话及发送消息这四个高影响流程,并衍生出十三个独立测量指标。

团队以约二十个精选项目为起点,Claude 估算各项目的毫秒级影响,汇总后设定冲刺目标。至第三天,十三项目标中的十二项已达成。为实现更快启动,团队将静态编辑器嵌入 HTML,使用户在 React 初始化期间即可输入,并预编译 V8 代码缓存;为加速导航,在不同对话间保持编辑器组件挂载,预取会话数据,并将侧边栏重渲染次数减少90%。

万物皆可优化:衡量即可行

团队希望迭代速度快于发布节奏,因此寻找在实验室环境中衡量性能的方法。Claude 并行运行多个线程,专注于指令计数、V8 调用计数、React 提交等指标。每个基准测试需满足两项条件:一是可在实验室优化,二是作为 CI 环境的护栏,数值只能下降。

针对实时时钟时间噪声大的问题,团队要求 Claude 证明指令计数与实时性能的关联。Claude 剖析发现,消息树组装例程中四分之一的指令用于巨多态字典查找。优化后,两条热点路径的指令计数分别减少48%和31%,实时时钟时间下降78%和44%。由此确立核心教训:借助 Claude,衡量某事使其变得可行。一旦有了需要击败的数字,Claude 即可开始优化。

逐线程循环与水平扩展

工作流在 Slack 频道中以线程为单位循环:工程师提出缓慢环节,Claude 构建基准测试并提交 PR,发布后监控现场数据。若性能改善,则锁定成果;否则关闭开关继续迭代。例如,针对侧边栏加载卡顿问题,Claude 创建遥测事件映射布局偏移,批量修复了迟到标题行、光标滑动等问题,发现31%的网页加载在无交互情况下发生元素移动。

随着循环运转,Claude 开始自主开启新线程。在单一频道中,同时运行了一百五十多个线程。Claude 进行了 React Hook 普查,发现编辑器打字路径中存在大量 Hooks 导致重渲染;统计样式重计算,发现特定选择器增加24毫秒延迟;追踪代码路径,发现遗留的 location.reload() 每天造成五十万次隐藏重新加载。甚至通过两行代码修改,解决了因非 Latin-1 字符导致 V8 走慢速双字节路径的问题。

安全护栏与方向把控

为确保高速下的安全性,团队建立了严密护栏。每个 PR 经自动化审查及人类批准,高风险更改通过短期功能开关发布。两周内引入近两百个开关,过半已在结束时清理。针对脆弱的静态编辑器,Claude 构建了数十个护栏,包括 jsdom 渲染测试、十四种视口尺寸下的集成测试及按键测试,确保像素级对齐。

此外,团队采用增量发布策略。在一次内部发布中,Claude 追踪到由 Chrome 推测性加载边缘案例导致的布局偏移,并通过模拟预渲染流程添加测试予以修复。人类团队则负责把控方向:鼓励 Claude 更大胆地探索,裁决用户体验细节(如骨架屏显示时机),并在边际效益递减时及时关闭线程。

下一步

如今,claude.ai 和桌面应用比8月初快了约3倍,且下限约束保持了这一水平。团队并未止步,第95百分位数、其他流程及超长对话仍有改进空间。部分优化成果已贡献至 Electron、Chromium、Node.js 等上游项目。Anthropic 预计将继续以这种“一次一个线程”的方式工作,无论规模大小,频道仍在运行。