性能 CI 成本优化:设备分钟、风险分层与自适应测试选择
性能用例越来越多后,全设备、全场景、全配置每次都跑会迅速耗尽设备分钟。简单减少用例又会降低回归覆盖。本文用变更影响、历史风险和分层门禁,把有限资源投入最有价值的验证。
一、先量化成本
每个用例记录排队、准备、预热、执行、工件传输和分析时间,以及设备类型占用。真正成本不仅是脚本运行分钟,还包括冷却时间和失败重试。
二、三级流水线
- 提交级:少量稳定路线、代表设备、轻量采集;
- 日级:扩展设备档和重点场景;
- 发布级:完整矩阵、深度工件和长稳态测试。
高频层追求快速反馈,低频层追求覆盖与证据深度。
三、基于变更选择测试
建立代码、资源、Shader、配置与场景的映射。Shader 公共依赖变化优先跑 GPU 和相关材质场景;资源依赖变化优先跑加载、内存和包体;自动化协议变化则扩大基础设施验证。
映射不确定时宁可扩大覆盖,不应把未知变更判为低风险。
四、历史风险
用例近期失败、波动、覆盖的高价值缺陷和对应模块变更频率,可以影响优先级。但不能因为长期稳定就永久不跑,应保留探索预算,防止模型形成盲区。
五、组合覆盖
设备、画质、场景组合爆炸时,选择能覆盖关键能力差异的代表集合。低、中、高设备档不是简单按价格分,而应覆盖 GPU 架构、内存、系统和热行为。
六、早停与级联
轻量门禁出现明确回退时,自动触发目标设备和深度 Trace,而不是继续跑无关全矩阵。基础设施失败先恢复,不触发产品侧大规模复测。
七、成本指标
- 每发现一个有效回退消耗的设备分钟;
- 排队时间与设备利用率;
- 无效运行和重复工件比例;
- 从提交到结论的时间;
- 高风险变更覆盖率;
- 因选择策略漏掉的回退数量。
结语
性能 CI 的目标不是运行最多测试,而是在可接受时间与成本内发现最重要的回退。风险分层、自适应选择和级联深测能让覆盖率与设备成本同时可控。