SuperAPI AI 工具集

openclaw-test-heap-leaks

测试与质量

查看项目

更新于 10-16 06:14

技能介绍

用途:面向 OpenClaw 项目,调查 Vitest 的 OOM、测试进程 RSS 增长、堆内存滞留和运行时闭包泄漏回归。核心是区分“测试期内存滞留”与“运行时泄漏”两类问题。

主要能力:先读 $openclaw-test-performance 获取当前工作负载与性能分析路径,再读打包源码中的堆采集、快照对比与专用运行时验证流程。强调在分类增长前先匹配真实入口、配置、worker 预算与 PID。区分证据强度:RSS 只是分诊证据,不等于泄漏;采样式 .heapprofile 也不是 .heapsnapshot;应对比同一 PID 的等价快照,检查正向分配家族,并用支配者/保持者区分被转换的模块图与仍被保留的应用对象、定时器、句柄、缓冲和缓存。

使用方式:捆绑的只读快照辅助脚本位于 references/upstream/scripts/heapsnapshot-delta.mjs,用 Node 传入两个任务所有的快照调用,或按其文档化的 --lane-dir 选择;该脚本无需安装进 OpenClaw 仓库。安装方面,此工作流需要已安装的配套技能 $openclaw-test-performance 与 $openclaw-testing,安装器不会自动解析,需一并选择或确认已安装。

适用场景:仅适用于经过验证的 OpenClaw 检出;仓库专属命令只对已验证检出有效,可移植调试命令用于所选进程。

限制:堆快照可能含隐私数据,须本地/限定范围保存,不得进入公开变更。修复运行时闭包问题时,应使用所选检出中源码描述的专用 producer(含修复前/合成泄漏敏感度控制),不要为了得到 PASS 而改装无关脚手架;应在有证据的归属处修复进程生命周期或清理,然后重复相同 producer/工作负载和常规测试证明。报告需按已证明、可能或不确定标注同一 PID/来源身份、滞留家族、保持者支撑、开销与泄漏分类;仅降低峰值 RSS 不能证明运行时对象已释放。上游示例属于参考流程,不构成访问、安装、部署、发布或调用其他模型/提供方的授权,操作者所选模型、项目指令与来源信任策略仍具权威性;技能包不声称任何关联的 release/channel 技能或运行时已安装,执行版本敏感示例前应检查当前所属源码。