Skip to content
FunCoding

Search

Search docs, Skills and MCP

内存与性能回归测试

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

This page has not been translated into English yet. The original Chinese version is shown below.

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 的比较容差,不是产品对所有机器的资源使用保证。基线通过只说明对应测试场景符合阈值,不能推断所有长会话都不存在泄漏或延迟问题。

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