内存与性能回归测试
运行独立基线测试,理解中位数、异常值过滤和更新基线的含义。
Gemini CLI 源码仓库对内存和性能设有独立回归测试,分别位于 memory-tests 与 perf-tests。它们不会随默认 npm run test 或 npm run test:e2e 执行;官方说明会在 nightly CI 运行,也可手动调用。
内存回归
npm run test:memoryMemoryTestHarness 位于 packages/test-utils,会多次强制垃圾回收,以中位数快照减少偶发峰值,再与已提交基线比较。官方记录的容差为 10%,并可通过 analyzeSnapshots() 分析连续三个快照的持续增长。
有意改变内存行为并确认结果后,才更新基线:
UPDATE_MEMORY_BASELINES=true npm run test:memory该命令会覆盖 memory-tests/baselines.json。审阅差异并说明预期变化;更新文件本身不能证明增长合理。
性能回归
npm run test:perfPerfTestHarness 记录 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 的比较容差,不是产品对所有机器的资源使用保证。基线通过只说明对应测试场景符合阈值,不能推断所有长会话都不存在泄漏或延迟问题。
新增或调整场景时,保留可重复输入、使用一致环境,并把基线修改与实际行为变化一起审阅。功能是否正确由集成测试和其他测试共同验证。