开发与工程 ✓ Microsoft · 官方 memory-leakdisposable-managementevent-listenerstypescriptdom-handlerslifecycle-managementtest-validation

内存泄漏审计

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

FollowSkills 评估 · FSRS-2.0
谨慎使用
52/ 100 五分制 2.6 / 5
1 2 3 4 5 6
1信任安全17 / 25 · 3.4/5

技能仅提供代码审查建议,不要求凭据、网络访问或高权限操作,且总体遵循资源释放和生命周期隔离原则,因此基础信任较高。但未说明用户确认、敏感数据处理、变更回滚或外部副作用;PR编号和验证声明在所给材料中未被直接核验,故扣分。

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

六步检查、代码示例和验证清单结构清晰,package.json及工作流显示相关聊天泄漏检查脚本和CI存在。但技能本身未定义异常输入、无法判断框架语义、测试失败或依赖不可用时的诊断反馈,部分规则使用绝对表述,且静态阅读无法复现关键路径,故限制在10分以下。

3适用触发10 / 15 · 3.3/5

触发场景明确,覆盖事件监听器、生命周期、重复调用、池化对象和测试。可是未清楚界定非适用场景、输入输出格式、审查边界或不同实现语义;未提供中文使用支持说明,但核心功能不依赖海外服务,因此仅部分扣分。

4规范维护7 / 15 · 2.3/5

文档采用前置触发条件、分步清单、示例和速查表,渐进披露较好;仓库材料提供MIT许可证、版本和官方维护背景。但技能没有安装或依赖说明、维护负责人、更新路径、变更记录、FAQ及已知限制,故为中等分数。

5有效结果6 / 15 · 2.0/5

规则可直接用于人工定位常见 disposable 泄漏,并给出 MutableDisposable、Event.once 和 DisposableStore 等修复方向;仓库还显示存在聊天内存泄漏脚本和CI入口。可是没有规定审查输出或补丁格式,规则需要结合具体代码判断,且静态材料未证明代表性结果可直接使用,故扣分。

6证据核验4 / 10 · 2.0/5

技能列出PR编号、代码模式和若干仓库脚本名称,相关工作流对聊天内存泄漏提供了可审计的CI定义。仍缺少与本技能关键六类路径对应的提交测试、固定证据或独立复现结果,且本次未执行任何验证,因此只能给有限分数。

证据充分度: 评估于 2026年7月20日 审查版本 5b3e1be7be9e
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 不要把“永远不要使用”类规则机械套用到所有上下文;需核对对象生命周期、事件实现和调用方所有权。
  • 技能引用的PR验证声明未在本次材料中独立核验,不能视为已证明的测试结果。
  • “检查监听器数量”和聊天泄漏脚本需要具体仓库环境、依赖和构建条件,静态审查不能替代实际验证。
  • 未规定审查结果格式、失败诊断或回滚流程,使用者仍需自行设计这些步骤。
查看完整评分方法 →

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

这是一个面向 VS Code 代码审查与修复的内存泄漏审计技能,重点处理事件监听器、DOM 处理器、生命周期回调和 disposable 管理。它按六个步骤检查 DOM 事件、一次性事件、重复调用、模型生命周期、资源池对象和测试泄漏验证。核心模式包括 addDisposableListener、Event.once、MutableDisposable、DisposableStore 和 onWillDispose。它适合需要审查或修复相关泄漏问题的开发者,但 SKILL.md 没有提供独立安装流程或可执行脚本。

指导代理审查代码中的 DOM 事件注册、一次性事件、重复调用方法中的监听器、与模型生命周期绑定的 DisposableStore、资源池对象的释放范围以及测试套件的 disposable 泄漏检查。它要求识别 raw .onload、.onclick、addEventListener()、不恰当的 this._register() 和缺少模型清理等模式,并建议使用对应的 disposable 模式修复。修复后可检查重复操作前后的监听器数量、对象数量是否稳定,并在聊天场景下运行 npm run perf:chat-leak --messages 20 --verbose 进行额外验证。

  1. 开发者审查会重复执行的搜索、切换或初始化方法,担心每次调用都会增加事件监听器。
  2. 开发者修复报告中指出的 DOM 处理器或扩展图标组件监听器数量持续增长问题。
  3. 开发者实现 onWillDispose、onDidClose 等模型生命周期逻辑,需要确保相关资源随模型销毁。
  4. 开发者维护列表或树等资源池工厂,必须让每个池化对象独立释放其监听器。
  5. 开发者编写创建 disposable 对象的测试套件,需要加入自动泄漏检测。

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

优点
  • 提供按顺序执行的六步审计清单,覆盖 DOM 事件、一次性事件、重复调用、模型生命周期、资源池和测试。
  • 给出可直接对照的错误与正确 TypeScript 示例。
  • 明确覆盖 addDisposableListener、Event.once、MutableDisposable、DisposableStore 和 onWillDispose 等具体模式。
  • 包含监听器数量、对象数量和聊天堆增长等修复后验证方法。
局限
  • 内容聚焦 VS Code 风格的 disposable 和事件模式,未证明适用于其他框架或运行时。
  • 没有独立脚本、测试套件或自动化审计工具;主要依赖代理进行代码审查。
  • 独立安装方式未在源材料中说明。
  • 聊天泄漏验证依赖 npm 命令和未提供内容的 chat-perf 技能,且只针对聊天场景。

如何安装这个 Skill?

该技能位于 microsoft/vscode 仓库的 .github/skills/memory-leak-audit/SKILL.md。源材料只说明它属于包含 61 个技能的仓库集合,未提供单独安装命令或独立发布包;需要使用支持 Agent Skills 的客户端加载该 SKILL.md。仓库整体采用 MIT 许可证。

如何使用这个 Skill?

在代码审查或修复任务中明确提出:"审计这段代码的内存泄漏和 disposable 问题,重点检查事件监听器、DOM 处理器、重复调用、模型生命周期和测试清理。" 让代理按六步清单检查,并在修复后验证监听器和对象数量是否随重复操作稳定。若任务涉及聊天泄漏,可要求运行 npm run perf:chat-leak --messages 20 --verbose;该技能说明此检查依赖 chat-perf 技能。

常见问题

这个技能会自动扫描整个仓库并生成报告吗?
源材料没有提供自动扫描脚本或报告格式。它提供的是供代理执行的审计规则、代码示例和验证步骤。
它适合哪些代码?
它明确适合涉及事件监听器、DOM 处理器、生命周期回调、重复调用方法、模型生命周期和 disposable 对象的 VS Code 代码。
使用它需要网络访问吗?
SKILL.md 没有要求网络访问。聊天泄漏验证通过 npm run perf:chat-leak 执行,但源材料没有说明该命令需要网络。
它能保证修复后不再有内存泄漏吗?
不能。它要求检查监听器和对象数量是否稳定,并在测试或聊天场景中进行验证,但没有提供形式化保证。

同仓库的其他 Skills

均来自 microsoft/vscode

开发与工程 ✓ Microsoft · 官方

VS Code 配置策略维护助手

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

开发与工程 ✓ Microsoft · 官方

VS Code 单元测试助手

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

开发与工程 ✓ Microsoft · 官方

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

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

开发与工程 ✓ Microsoft · 官方

V8 堆快照分析

从 V8 堆快照定位内存泄漏与对象保留链。

开发与工程 ✓ Microsoft · 官方

工具重命名兼容性检查

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

开发与工程 ✓ Microsoft · 官方

运行命令配置助手

为 VS Code Agent Session 配置和更新运行按钮命令。

开发与工程 ✓ Microsoft · 官方

VS Code 代码卫生检查

在提交前检查 VS Code 代码规范,减少因卫生检查失败导致的提交阻塞。

开发与工程 ✓ Microsoft · 官方

VS Code 冒烟测试故障诊断

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

开发与工程 ✓ Microsoft · 官方

Anthropic SDK 升级助手

系统化升级 Anthropic SDK,并检查 API 变更、编译问题与 Claude 相关测试。

开发与工程 ✓ Microsoft · 官方

Context7 项目初始化助手

借助最新库文档,为 VS Code 工作区搭建完整项目骨架。

开发与工程 ✓ Microsoft · 官方

GitHub Copilot SDK 升级助手

在 VS Code Copilot Chat 项目中升级并验证 @github/copilot。

开发与工程 ✓ Microsoft · 官方

VS Code Chat 性能实验室

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

开发与工程 ✓ Microsoft · 官方

VS Code Agents 窗口会话架构

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

开发与工程 ✓ Microsoft · 官方

组件夹具与截图测试

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

开发与工程 ✓ Microsoft · 官方

VS Code 错误遥测修复指南

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

开发与工程 ✓ Microsoft · 官方

VS Code 集成测试运行助手

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

开发与工程 ✓ Microsoft · 官方

会话代码审查

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

开发与工程 ✓ Microsoft · 官方

Copilot 会话故障诊断

基于会话日志解释 Copilot CLI 为何出现异常行为。

开发与工程 ✓ Microsoft · 官方

分支变更合并助手

将当前会话的主题分支安全合并回基础分支。

开发与工程 ✓ Microsoft · 官方

Git 分支同步助手

安全同步上游分支,或发布当前会话分支到远程仓库。

相关 Skills