开发与工程 ✓ Microsoft · 官方 vscodeperformance-profilingmemory-investigationheap-snapshotplaywrightchat-smoke-testing

VS Code 性能调查工作流

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

FollowSkills 评估 · FSRS-2.0
不推荐
47/ 100 五分制 2.4 / 5
信任安全10 / 25 · 2.0/5

文档明确披露会在真实机器上启动完整 VS Code、复用可能含认证秘密的用户配置,并要求使用临时工作区、避免破坏性提示和保留清理边界;但默认工作区仍可能是仓库根目录,持久化配置和真实 Copilot/LLM 工具调用带来外部副作用,缺少统一的逐项用户确认、权限隔离和完整回滚机制,因此扣分。

可靠稳定8 / 20 · 2.0/5

流程包含无快照冒烟、截图、summary.json、错误字段、状态检查、显式清理和异常诊断建议,主路径较连贯;但本次仅静态阅读,未验证脚本、依赖、选择器或跨平台行为,且引用的辅助 skill 和脚本实现未全部提供,因此不超过静态上限并扣分。

适用触发10 / 15 · 3.3/5

适用场景、非适用场景、输入参数、Chat 与非 Chat 分支及输出工件较明确;但非 Chat 场景仍要求用户补充关键要素,依赖本地 Code OSS、Playwright、Electron、npm 下载和 Copilot 认证,未说明中文交互或中国大陆网络可达性,因此扣分。

规范维护9 / 15 · 3.0/5

文档结构清晰,采用渐进式流程,提供命令示例、配置说明、安全提示、故障排查、目录约定和限制;仓库材料提供 MIT 许可、Microsoft 归属和版本信息,但 skill 本身没有明确维护负责人、变更日志、版本策略或更新路径,且 README 与 SKILL 对持久化用户配置的建议存在不一致,因此扣分。

有效结果6 / 15 · 2.0/5

目标结果包括可复现运行、截图、summary.json、堆快照及后续分析交接,核心性能调查价值明确;但结果依赖真实环境执行和后续 heap-snapshot-analysis,静态材料未证明代表性输出可成功生成,且“修复并运行所有测试”的范围可能超出单次调查,因此按静态上限扣分。

证据核验4 / 10 · 2.0/5

仓库包含聊天性能和内存泄漏 CI 工作流,提供一定的第三方可审计执行证据;但这些工作流并未明确覆盖该 SKILL.md 的全部关键路径,未提供本次 revision 下的实际运行结果或独立复现记录,因此不超过静态上限并扣分。

证据充分度: 评估于 2026年7月20日 审查版本 5b3e1be7be9e
使用前请注意
  • 运行会启动真实 VS Code,并可能向真实 Copilot/LLM 发送提示或执行工具调用;必须使用隔离、可丢弃的工作区和明确的用户确认。
  • 持久化用户配置可能包含认证秘密;不要上传、共享或在未关闭 Code 进程时复制配置目录。
  • 默认工作区和“修复产品代码、运行所有测试”的指令可能扩大影响范围,应在执行前明确目标路径、修改范围和回滚方案。
  • 核心依赖 npm、Playwright、Electron 下载及 Copilot 认证;材料未证明中国大陆网络环境下可稳定访问。
查看完整评分方法 →

它能做什么 & 适用场景

此技能用于驱动 Code OSS 重复执行 VS Code 场景,并收集性能、内存和界面验证证据。它可以运行内置的 Chat 内存冒烟测试,采样渲染器堆内存,生成截图、summary.json 和指定的堆快照。完成采集后,它将结果交给通用的堆快照分析技能进行对象分组、比较和保留路径分析。该流程适合需要先证明场景确实执行,再调查内存增长或泄漏的 VS Code 工程任务。

定义预热动作、重复迭代和可安全采样的静止点;通过 Node.js 运行内置的 chat-memory-smoke.mts 或基于它创建场景运行器;启动 Code OSS 并通过 CDP 与 Playwright 连接;发送 Chat 提示、等待响应、采集渲染器堆内存并保存截图;写入 summary.json、堆样本和可选的 .heapsnapshot 文件;检查错误、响应数量、响应文本、快照标签和截图;在需要时将快照交给 heap-snapshot-analysis 进行比较和保留路径分析。

  1. 当 VS Code 用户怀疑重复执行 Chat 对话会导致内存持续增长时,运行多轮 Chat 场景并比较预热后的堆快照。
  2. 当工程师需要验证某个非 Chat VS Code 工作流是否泄漏时,在 scratchpad 中创建一次性运行器,先用无快照模式确认场景可靠,再采集目标快照。
  3. 当自动化流程可能卡在登录、信任提示、进度行或错误 UI 状态时,使用 Playwright 连接现有 Code 窗口,查看快照和工作区内截图。
  4. 当产品代码完成疑似泄漏修复后,使用相同场景和相同快照标签重跑,并比较迭代阶段的内存趋势和快照差异。

优缺点一览

优点
  • 包含可直接运行的 Chat 内存冒烟测试运行器,并支持无快照健康检查和指定标签的目标快照。
  • 强调先通过 summary.json 和截图验证场景,再进行堆快照分析,减少分析错误 UI 状态的风险。
  • 支持持久用户配置、临时用户配置和从种子配置复制登录状态。
  • 覆盖从场景设计、自动化开发、快照采集到修复后复测的完整调查流程。
  • 仓库源代码采用 MIT 许可证。
局限
  • 运行器会在真实机器上启动完整的 Code OSS;Chat 提示会发送给真实 LLM,代理触发的终端命令和文件编辑也可能真实执行。
  • Chat 场景通常需要 Copilot 身份验证,并且需要谨慎管理可能包含认证信息的用户数据目录。
  • 技能只明确提供 Chat 运行器;非 Chat 场景需要用户或代理自行在 scratchpad 中编写运行器。
  • 源材料没有说明独立的安装注册流程、客户端适配流程或专门的技能测试套件。
  • frontmatter 使用 Bash(npx @playwright/cli:*) 这类工具许可声明,迁移到其他客户端可能需要调整。

如何安装

源材料未提供独立的技能安装器或客户端注册步骤。可先获取仓库:

git clone https://github.com/microsoft/vscode.git
cd vscode

技能文件位于 .github/skills/auto-perf-optimize/SKILL.md。将该技能目录按所用 Agent Skills 客户端的技能目录规则提供给客户端;具体注册方式在源材料中未说明。

如何使用

在仓库根目录运行 Chat 冒烟测试,例如:

node .github/skills/auto-perf-optimize/scripts/chat-memory-smoke.mts --iterations 3 --no-heap-snapshots

需要指定预热后快照时,可运行:

node .github/skills/auto-perf-optimize/scripts/chat-memory-smoke.mts --iterations 8 --heap-snapshot-label 03-iteration-01 --heap-snapshot-label 03-iteration-08

向代理提出“启动 VS Code,重复执行这个场景并调查是否存在内存增长”之类的请求即可触发相应流程。非 Chat 场景需要明确开始动作、一次迭代的定义、UI 稳定信号,以及使用持久配置还是临时配置。分析已有快照时不要使用此技能,应直接使用 heap-snapshot-analysis。

常见问题

这个技能会在沙箱中运行 VS Code 吗?
不会。源材料明确说明 Chat 运行器在用户真实机器上启动完整的 VS Code,并使用真实的 Copilot 身份验证和 LLM。应使用临时或被 git 忽略的工作区,避免误改真实仓库。
已有 .heapsnapshot 文件时还应该使用它吗?
如果只需要分析堆对象、直接保留者或到 GC 根的路径,不应使用此技能,应直接使用 heap-snapshot-analysis。此技能主要负责复现场景和采集证据。
运行 Chat 冒烟测试是否需要登录?
可能需要。如果 Chat 要求身份验证,可使用 --keep-open 让用户登录一次;关闭 Code 窗口后,再用共享的持久配置运行后续测试。
这个技能是否免费?
源材料说明 Code - OSS 源代码采用 MIT 许可证。技能本身的独立价格未在源材料中说明;Chat 运行还会使用真实 LLM 和现有身份验证。

同仓库的其他 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 Chat 性能实验室

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

开发与工程 ✓ Microsoft · 官方

组件夹具与截图测试

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

开发与工程 ✓ Microsoft · 官方

VS Code 冒烟测试助手

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

开发与工程 ✓ Microsoft · 官方

VS Code 崩溃转储符号化

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

开发与工程 ✓ Microsoft · 官方

VS Code 本地 Web 工作台

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

开发与工程 ✓ Microsoft · 官方

反馈执行器

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

相关 Skills