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

VS Code Chat 性能实验室

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

FollowSkills 评估 · FSRS-2.0
谨慎使用
53/ 100 五分制 2.7 / 5
1 2 3 4 5 6
1信任安全14 / 25 · 2.8/5

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

2可靠稳定8 / 20 · 2.0/5

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

3适用触发9 / 15 · 3.0/5

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

4规范维护10 / 15 · 3.3/5

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

5有效结果7 / 15 · 2.3/5

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

6证据核验5 / 10 · 2.5/5

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

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

这个 Skill 能做什么,适合哪些场景?

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 结果定位回归日期。

这个 Skill 有哪些优点和局限?

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

如何安装这个 Skill?

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

如何使用这个 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 · 官方

VS Code 集成浏览器架构指南

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

开发与工程 ✓ Microsoft · 官方

VS Code 性能调查工作流

自动化复现 VS Code 场景并采集性能与内存证据。

开发与工程 ✓ Microsoft · 官方

VS Code 冒烟测试助手

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

开发与工程 ✓ Microsoft · 官方

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

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

开发与工程 ✓ Microsoft · 官方

VS Code Insiders 自动化技能

通过 Playwright 自动化 VS Code Insiders 与 Copilot Chat。

开发与工程 ✓ Microsoft · 官方

VS Code 单元测试助手

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

开发与工程 ✓ Microsoft · 官方

VS Code 集成测试运行助手

帮助你在 VS Code 源码仓库中准确运行和筛选集成测试。

开发与工程 ✓ Microsoft · 官方

VS Code 冒烟测试故障诊断

定位并验证 Azure DevOps 中间歇性 VS Code Electron 冒烟测试失败。

开发与工程 ✓ Microsoft · 官方

Code OSS 启动与调试

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

开发与工程 ✓ Microsoft · 官方

Code OSS 开发日志查看器

快速定位并读取 Code OSS 开发运行日志。

开发与工程 ✓ Microsoft · 官方

CPU 性能剖析分析器

从 V8 和 DevTools 性能文件中定位性能瓶颈。

开发与工程 ✓ Microsoft · 官方

内存泄漏审计

系统检查事件监听器、生命周期回调和可释放资源中的泄漏风险。

开发与工程 ✓ Microsoft · 官方

CI 检查修复助手

根据失败检查的注释和输出定位原因并修复当前会话中的 CI 问题。

开发与工程 ✓ Microsoft · 官方

CI 组件截图基线调查

从 CI 检查结果和截图制品中调查组件截图差异。

开发与工程 ✓ Microsoft · 官方

Copilot Chat OpenTelemetry 埋点指南

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

开发与工程 ✓ Microsoft · 官方

Agent 主机端到端测试助手

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

开发与工程 ✓ Microsoft · 官方

组件夹具与截图测试

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

开发与工程 ✓ Microsoft · 官方

VS Code 崩溃转储符号化

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

开发与工程 ✓ Microsoft · 官方

VS Code 错误遥测修复指南

从错误遥测追溯无效数据源头,修复未处理错误而不是掩盖崩溃。

开发与工程 ✓ Microsoft · 官方

会话代码审查

审查当前会话的代码变更,并将高价值问题直接标注在代码上。

相关 Skills