Monorepo构建缓存命中率估算器
按总包数与本次变更包数估算Turborepo/Nx等Monorepo构建工具的缓存命中率,以及能节省多少构建耗时。
免费在线工具
Loading…
使用说明
填写项目的总包/任务数、本次代码变更影响到的包数、单包完整构建平均耗时、缓存命中时的恢复耗时,点击「计算」即可看到缓存命中率、有缓存与无缓存的总耗时对比、节省的时间与比例。
模型假设:未被本次变更影响的包视为缓存命中,只需付出「恢复耗时」(从本地/远程缓存拉取产物);被变更影响的包必须完整重新构建。命中率 = 未变更包数 / 总包数。
点击「加载示例数据」可快速查看一个50个包、5个包变更的典型场景。
功能介绍
本工具是一个纯前端计算器,核心逻辑:
- 命中率 = (总包数 - 变更包数) / 总包数 × 100%
- 无缓存总耗时 = 总包数 × 单包构建耗时
- 有缓存总耗时 = 变更包数 × 单包构建耗时 + 未变更包数 × 缓存恢复耗时
- 节省耗时与节省比例基于以上两者差值计算
适合在引入或调优 Turborepo、Nx、Bazel 等 Monorepo 构建缓存系统前,快速估算潜在的CI耗时收益,辅助向团队说明投入产出比。
使用场景
评估引入缓存系统前的收益
在引入Turborepo/Nx构建缓存前,快速估算潜在的CI耗时收益。
向团队展示优化效果
展示缓存策略调优后的预期构建耗时节省比例。
对比不同变更规模的影响
对比小范围变更与大范围变更下的构建耗时差异。
常见问题
这个命中率是实测值还是估算值?
是理想情况下的估算值。实际命中率还受依赖图传播(下游包因上游变更被迫失效)、缓存键设计、远程缓存网络延迟等因素影响,仅供决策参考。
缓存恢复耗时应该填多少?
本地缓存通常在1秒以内,远程缓存(如Turborepo Remote Cache)视网络与产物体积可能需要2-10秒不等,建议按团队实测数据填写。