一句话:通过 Kubernetes 案例与复制研究,揭示从 Bazel 降级到 Go Build 在构建时间、内存与 CI 成本上的代价。
现代构件式构建工具(如 Bazel)可加速构建,但团队可能因可维护性放弃它们,降级后果尚不明确。本文对 Kubernetes 从 Bazel 降级到 Go Build 进行案例研究,复现并分析降级期间变更集的全量与增量构建,测量时间、内存、CPU 与 CI 成本。结果显示:Bazel 全量构建快 23.06–38.66%,增量构建最多快 75.19%;但内存占用更高,全量和增量分别高 81.42–351.07% 与 118.71–218.22%,高并行度下 CPU 负载也更大;降级可使 CI 资源成本增加至多 76%。四个同样降级项目的复制表明,构建时间惩罚减弱,但 Bazel 始终更耗内存,说明降级存在可观性能代价。
Since developers invoke the build system frequently, its performance can impact productivity. Modern artifact-based build tools accelerate builds, yet prior work shows that teams may abandon them for alternatives that are easier to maintain. While prior work shows why downgrades are performed, the implications of downgrades remain largely unexplored.In this paper, we describe a case study of the Kubernetes project, focusing on its downgrade from an artifact-based build tool (Bazel) to a language-specific solution (Go Build). We reproduce and analyze the full and incremental builds of change sets during the downgrade period. On the one hand, we find that Bazel builds are faster than Go Build, completing full builds in 23.06-38.66 % less time and incremental builds in up to 75.19 % less time. On the other hand, Bazel builds impose a larger memory footprint than Go Build of 81.42–351.07 % and 118.71-218.22 % for full and incremental builds, respectively. Bazel builds also impose a greater CPU load at parallelism settings above eight for full builds and above one for incremental builds. We estimate that downgrading from Bazel can increase CI resource costs by up to 76 %. We explore whether our observations generalize by replicating our Kubernetes study on four other projects that also downgraded from Bazel to older build tools. We observe that while build time penalties decrease, Bazel consistently consumes more memory. We conclude that abandoning artifact-based build tools, despite perceived maintainability benefits, tends to incur considerable performance costs for large projects. Our observations may help stakeholders to balance trade-offs in build tool adoption.
DOI 原文 ·
@inproceedings{paperbot9335,
title = {The Cost of Downgrading Build Systems : A Case Study of Kubernetes},
author = {Gareema Ranjan and Mahmoud Alfadel and Gengyi Sun and Shane McIntosh},
booktitle = {ASE},
year = {2025},
doi = {10.1109/ase63991.2025.00241}
}