跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

内存与性能回归测试

运行独立基线测试,理解中位数、异常值过滤和更新基线的含义。

Gemini CLI 源码仓库对内存和性能设有独立回归测试,分别位于 memory-tests 与 perf-tests。它们不会随默认 npm run test 或 npm run test:e2e 执行;官方说明会在 nightly CI 运行,也可手动调用。

内存回归

npm run test:memory

MemoryTestHarness 位于 packages/test-utils,会多次强制垃圾回收,以中位数快照减少偶发峰值,再与已提交基线比较。官方记录的容差为 10%,并可通过 analyzeSnapshots() 分析连续三个快照的持续增长。

有意改变内存行为并确认结果后,才更新基线:

UPDATE_MEMORY_BASELINES=true npm run test:memory

该命令会覆盖 memory-tests/baselines.json。审阅差异并说明预期变化;更新文件本身不能证明增长合理。

性能回归

npm run test:perf

PerfTestHarness 记录 wall-clock 时间、CPU 使用和 event loop delay,分别使用 performance.now()、process.cpuUsage()、perf_hooks.monitorEventLoopDelay()。采样通过 IQR 去除异常值,并以 15% 容差比较基线。

需要更新时:

UPDATE_PERF_BASELINES=true npm run test:perf

更新流程含预热和多次运行,会覆盖 perf-tests/baselines.json。先判断变化来自代码还是测试环境,再审阅新的基线。

如何解释结果

10% 与 15% 是官方测试 harness 的比较容差,不是产品对所有机器的资源使用保证。基线通过只说明对应测试场景符合阈值,不能推断所有长会话都不存在泄漏或延迟问题。

新增或调整场景时,保留可重复输入、使用一致环境,并把基线修改与实际行为变化一起审阅。功能是否正确由集成测试和其他测试共同验证。