工程开发
openclaw-test-heap-leaks avatar

openclaw-test-heap-leaks

调查并解决 OpenClaw 测试内存泄漏、Vitest OOM 与 RSS 增长问题,使用堆栈快照进行诊断。

简介

openclaw-test-heap-leaks 技能为 OpenClaw 存储库的测试环境提供了诊断内存不稳定性的系统性方法。专为遭遇内存不足 (OOM) 错误、RSS 峰值或 Vitest 测试执行期间内存持续增长的工程师而设计,此技能自动化了堆栈快照的获取与分析流程。它协助区分长期运行的测试工作程序中与基础设施相关的模块图保留,以及实际应用程序层级的对象泄漏。通过使用特定的环境变量标志与自动化比较脚本,开发人员能够隔离失败的测试通道、识别有问题的测试配置,并套用针对性的修复方案。

  • 使用预先配置的间隔设置,在 CI 或本地测试执行期间获取堆栈快照。

  • 针对多个堆栈快照进行自动化差异分析,以精准锁定内存中的对象增长。

  • 整合基于 Node.js 的辅助脚本,以解析与比较每个 Worker PID 的内存用量。

  • 区分 Vitest/Vite 转换模块保留与执行时期应用程序对象泄漏(如缓存、监听器、数据库控制句柄)。

  • 用于识别对 Worker 内存预算产生负面影响的“热点”文件的诊断工作流程。

  • 当测试套件出现不确定的失败或负载过重导致进程终止时,请使用此技能。

  • 优先通过测试并行行为配置,将确认占用大量内存的测试隔离到专属通道中。

  • 在修改代码前,请务必通过检查浏览器开发者工具中的保留器 (retainers) 与支配者 (dominators) 来确认差异分析的结果。

  • 确保适当导出如 OPENCLAW_TEST_MEMORY_TRACE 与 OPENCLAW_TEST_HEAPSNAPSHOT_DIR 等环境变量,以获得完整的诊断覆盖率。

  • 预期输入包含测试套件名称、分片/通道标识符以及原始的 .heapsnapshot 文件;输出结果提供泄漏类型的明确诊断与针对架构清理或测试隔离的建议路径。

仓库统计

Star 数
366,735
Fork 数
75,309
Open Issue 数
6,821
主要语言
TypeScript
默认分支
main
同步状态
空闲
最近同步时间
2026年4月30日 16:53
在 GitHub 查看