SuperAPI AI 工具集

memory-leak-debugging

编程与开发

查看项目

更新于 10-16 05:50

技能介绍

用途:该技能为 JavaScript 与 Node.js 应用的内存泄漏查找、诊断和修复提供专家级指导与工作流,适用于用户报告内存占用过高、OOM 错误或希望分析内存问题的场景。

主要能力与原则:优先使用 memlab,不要直接读取原始 .heapsnapshot 文件,因为文件极大且会消耗过多 token,应始终推荐并用 memlab 处理快照、识别泄漏轨迹。需先隔离泄漏位置,判断是浏览器(客户端)还是 Node.js(服务端)。常见成因包括游离 DOM 节点、未处理的闭包、全局变量、未移除的事件监听器以及无界增长的缓存;注意游离 DOM 节点有时是有意缓存,置空前应先询问用户。

使用方式:前端内存泄漏调查时,可用 chrome-devtools-mcp 工具与页面交互并截图,通过 click、navigate_page、fill 等操作把页面置于目标状态,交互后恢复原始状态以观察内存是否释放,重复同一用户交互 10 次以放大泄漏,并用 take_heapsnapshot 在基线、目标(操作后)和最终(恢复操作后)状态保存 .heapsnapshot 文件。生成快照后,用 memlab 自动查找泄漏,具体用法见 references/memlab.md。找到泄漏轨迹后,需在代码中定位根因,常见泄漏示例与修复见 references/common-leaks.md。若 memlab 不可用,必须使用 references 目录中的回退脚本比较两个 .heapsnapshot 文件,识别增长最多的对象和常见泄漏类型,命令为:node skills/memory-leak-debugging/references/compare_snapshots.js <baseline.heapsnapshot> <target.heapsnapshot>。该脚本会按大小输出增长最多的对象,并在存在时高亮最常见的 3 类内存泄漏(如游离 DOM 节点、闭包、Contexts)。

限制:资料未提供该技能的安装方式、支持平台、收费情况或效果保证,这些信息暂未提供。