工程開發
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日 下午04:53
在 GitHub 查看
openclaw-test-heap-leaks | Skills Hub