开发与工程 ✓ Microsoft · 官方 performance-testingmemory-leak-detectionchat-renderingplaywrightelectronci-benchmarking

VS Code Chat 性能实验室

基准测试聊天渲染性能,并检测会话中的内存泄漏。

FollowSkills 评估 · FSRS-2.0
不推荐
53/ 100 五分制 2.7 / 5
信任安全14 / 25 · 2.8/5

文档说明了本地构建、发布版本、GitHub Actions、Playwright、构建产物和诊断文件等数据流,但未明确用户确认、凭据使用、响应内容/遥测数据处理或网络下载的安全边界;--verbose 会输出响应内容,CI 还会删除临时和诊断文件。权限范围未细化,故扣分。

可靠稳定8 / 20 · 2.0/5

命令、脚本路径、参数、统计方法、退出码和部分失败反馈描述较完整,且提供 CI 工作流证据;但关键脚本、场景定义、配置和锁文件未提供,无法静态复现核心路径。文档还称有 scheduled daily 运行,而给出的 workflow 仅声明 workflow_dispatch,存在一致性疑问。受静态上限及不确定性影响扣分。

适用触发9 / 15 · 3.0/5

目标用户、聊天渲染/流式响应/生命周期变更等触发场景和多类场景边界描述清楚,也支持本地构建、版本和 CI;但未明确不适用范围、平台差异、中文使用说明或中国大陆网络可达性,且核心流程依赖 npm、Playwright、VS Code 下载和 GitHub CLI/Actions。故扣分。

规范维护10 / 15 · 3.3/5

信息分层、快速开始、参数表、场景分类、指标解释、内存泄漏解释、CI 工件和相关技能说明较充分;但缺少安装前置条件、独立依赖说明、版本化策略、变更日志、维护责任人和明确更新路径,且默认基线版本可能随仓库演进而过时。故扣分。

有效结果7 / 15 · 2.3/5

技能明确覆盖性能回归、内存泄漏、基线比较和 CI 门禁,命令示例及输出指标具有直接操作价值;但静态材料未提供代表性实际结果,且完整执行成本高、依赖构建和下载,未经运行无法确认结果可用性。因此按静态校准取上限附近但不超过7分。

证据核验5 / 10 · 2.5/5

技能提供脚本名、工作流、命令、统计方法、原始运行表和工件保留说明,具备一定审计线索;但未提供实际运行结果、测试套件覆盖证据或跨来源 corroboration,且本评估未执行任何命令,故不能超过静态上限5分。

证据充分度: 评估于 2026年7月20日 审查版本 5b3e1be7be9e
使用前请注意
  • 执行会下载版本、Electron 和 Playwright 等外部资源,并可能使用 GitHub 凭据;运行前应确认网络、凭据和组织权限范围。
  • --verbose 可能暴露模拟响应内容;不要在包含敏感数据的环境中直接使用。
  • 文档中的默认基线版本、CI 触发描述与所给 workflow 可能不一致,应以同一修订中的实际脚本和配置核对。
  • CI 清理步骤会删除临时目录、构建目录及部分诊断文件;需先确认工件已上传且保留策略满足调查需要。
  • 未说明中国大陆网络可达性,npm、Playwright、VS Code 下载及 GitHub 服务可能导致核心流程不可用或变慢。
查看完整评分方法 →

它能做什么 & 适用场景

chat-perf 是 microsoft/vscode 仓库中的 Agent Skill,专门测试 VS Code 聊天界面的性能和内存增长。它可以通过 Playwright Electron 启动本地开发版、生产构建、已发布版本或其他本地构建,使用模拟 LLM 响应运行多个聊天场景。性能测试支持基线比较、统计显著性判断、堆快照和 CI 摘要;泄漏检查则通过强制 GC 后的堆与 DOM 节点增长斜率进行判断。它适合修改聊天渲染、流式响应或生命周期代码后的验证,但不是通用的 VS Code 全面性能测试工具。

运行 npm run perf:chat,启动 VS Code 并打开聊天面板,通过模拟 LLM 响应测试文本流式输出、工具调用和多轮对话场景;收集首个 token、完成时间、渲染时间、布局、样式重算、强制回流、长任务以及堆和扩展宿主内存等指标;将测试构建与本地路径、版本或保存的 JSON 基线比较,并可生成结果、轨迹、CPU profile、堆快照和 CI Markdown 摘要。运行 npm run perf:chat-leak 时,它在一个会话中连续发送指定数量的消息,在消息之间强制 GC,使用线性回归计算每条消息的堆增长和 DOM 节点增长。

  1. 修改 chatListRenderer.ts、chatInputPart.ts 或 Markdown 渲染代码后,开发者需要确认聊天渲染没有出现延迟或布局回流回归。
  2. 调整流式响应管线或 SSE 处理后,工程师需要把本地构建与某个 VS Code 发布版本或另一份本地构建进行对比。
  3. 修改聊天组件的 disposable 或生命周期逻辑后,维护者需要检查堆和 DOM 节点是否持续增长。
  4. CI 需要对触及聊天 UI 的拉取请求或定期 main 构建进行性能门禁和泄漏检查。
  5. 性能结果超过阈值但可能受噪声影响时,工程师需要使用 --resume 增加运行次数,或下载历史 CI 结果定位回归日期。

优缺点一览

优点
  • 覆盖内容流、工具调用和多轮用户对话等聊天场景。
  • 支持本地开发版、生产构建、发布版本和两个本地构建之间的比较。
  • 使用 IQR 异常值剔除、中位数和 Welch t 检验,避免仅凭单次噪声判定回归。
  • 同时提供性能回归检查和基于堆、DOM 节点斜率的内存泄漏检查。
  • 支持 CI 模式、历史运行摘要、轨迹、CPU profile 和堆快照等诊断产物。
局限
  • 性能基线可能需要下载发布版,因此运行需要网络;本地路径基线不会缓存。
  • 内存和堆指标对单次请求噪声较大,属于信息性指标,不能单独作为 CI 失败依据。
  • 源材料没有给出该 Skill 的独立安装流程,也没有明确列出聊天性能脚本的操作系统支持范围。
  • 基准测试需要通过 npm、Playwright Electron 和 VS Code 构建环境运行,不能直接在没有 shell 和文件系统访问的模型 API 中独立执行。
  • perf-summary 机器可读产物只保留 1 天,较长期的历史分析需依赖其他 30 天保留的摘要或结果产物。

如何安装

该 Skill 位于 VS Code 源码仓库的 .github/skills/chat-perf/SKILL.md;源材料没有说明独立的安装包或专用安装命令。可先获取仓库:git clone https://github.com/microsoft/vscode.git,然后进入仓库目录使用该 Skill;具体依赖安装步骤未在所给材料中说明。

如何使用

在包含该 Skill 的 VS Code 仓库中执行:npm run perf:chat -- --scenario text-only --runs 3。只测当前构建可执行 npm run perf:chat -- --no-baseline --runs 3;比较两个版本可执行 npm run perf:chat -- --build 1.110.0 --baseline-build 1.115.0 --runs 5;检查泄漏可执行 npm run perf:chat-leak -- --messages 20 --verbose。向 Agent 提出“请运行 chat-perf,比较当前构建与 VS Code 1.115.0,并检查 text-only 场景的显著回归”即可作为触发示例。使用 --gc-object-stats 仅进行 GC 深入分析,不要用于基准测试,因为它会破坏计时指标。

常见问题

它会修改 VS Code 源码或聊天数据吗?
所给说明描述的是启动构建、发送模拟消息并收集性能与内存数据;没有说明会修改源码或使用真实聊天服务。
必须下载基线版本吗?
不必。使用 --no-baseline 可以只测当前构建,不下载或运行基线,但不会生成回归比较结论。
什么情况会让性能命令失败?
当检测到统计显著的回归,或所有运行都失败时,退出码为 1;超过阈值但统计上不显著时退出码仍为 0。不同构建模式比较时还可能需要确认,除非使用 --force 或 --ci。
它能直接找出造成泄漏的具体对象吗?
不能。该 Skill 主要计算每条消息的堆和 DOM 增长斜率;说明建议在发现高内存增长后使用相关的 heap-snapshot-analysis Skill 进一步追踪保留对象。

同仓库的其他 Skills

均来自 microsoft/vscode

开发与工程 ✓ Microsoft · 官方

工具重命名兼容性检查

防止内置工具重命名破坏现有提示词与工具配置。

开发与工程 ✓ Microsoft · 官方

Copilot Chat OpenTelemetry 埋点指南

为 Copilot Chat 统一设计和维护 OpenTelemetry 埋点。

开发与工程 ✓ Microsoft · 官方

VS Code 配置策略维护助手

规范 VS Code 企业配置策略的注册、导出与验证。

设计与前端 ✓ Microsoft · 官方

VS Code 设计哲学

用价值、原则和设计动作,把“看起来不对”转化为可执行的界面改进。

开发与工程 ✓ Microsoft · 官方

Agent 主机端到端测试助手

用严格的回放夹具维护 VS Code Agent 主机端到端测试。

开发与工程 ✓ Microsoft · 官方

VS Code 集成浏览器架构指南

帮助开发者安全理解和修改 VS Code 集成浏览器的跨进程架构。

开发与工程 ✓ Microsoft · 官方

VS Code Agents 窗口会话架构

帮助代理安全实现和修复 VS Code Agents 窗口功能。

开发与工程 ✓ Microsoft · 官方

智能提交助手

根据仓库惯例生成提交信息并安全提交代码变更。

开发与工程 ✓ Microsoft · 官方

Agent Host 日志分析

定位 Agent Host 导出日志中的会话、传输与主机问题。

开发与工程 ✓ Microsoft · 官方

VS Code 单元测试助手

在 VS Code 源码仓库中按文件、测试名称或匹配模式运行单元测试。

开发与工程 ✓ Microsoft · 官方

VS Code Agent 定制助手

帮助创建、修复和排查 VS Code Agent 定制文件及其加载问题。

开发与工程 ✓ Microsoft · 官方

Code OSS 启动与调试

为 VS Code 源码构建提供隔离启动、Playwright 自动化和多进程调试端口。

开发与工程 ✓ Microsoft · 官方

VS Code 无障碍开发助手

为 VS Code 交互式功能提供可执行的无障碍实现规范。

设计与前端 ✓ Microsoft · 官方

VS Code CSS 布局规范

用 VS Code 规范构建稳健的 CSS 布局与文本截断体验

开发与工程 ✓ Microsoft · 官方

组件夹具与截图测试

帮助你为 VS Code 组件创建稳定、可主题化的截图测试夹具。

开发与工程 ✓ Microsoft · 官方

VS Code 冒烟测试助手

运行、筛选并调试 VS Code 端到端冒烟测试。

开发与工程 ✓ Microsoft · 官方

VS Code 崩溃转储符号化

将原生 VS Code 崩溃转储转换为带方法名的可读回溯。

开发与工程 ✓ Microsoft · 官方

VS Code 本地 Web 工作台

在本地 vscode.dev 中验证 VS Code 工作台和 Agents 窗口改动。

开发与工程 ✓ Microsoft · 官方

反馈执行器

读取当前会话反馈并落实对应代码修改。

开发与工程 ✓ Microsoft · 官方

VS Code 聊天定制编辑器开发技能

帮助开发者安全修改并测试 VS Code 的聊天定制管理界面。

相关 Skills