gpt4 book ai didi

bazel - 为什么 bazel 比 gradle 快

转载 作者:行者123 更新时间:2023-12-04 05:46:17 24 4
gpt4 key购买 nike

最初,我使用 gradle构建我的 android 项目,但最近,我将它迁移到 bazel ,我发现 bazel确实比gradle快,所以我想知道为什么,但是 bazel 的文档对此不太了解,有人可以帮助我吗?

非常感谢!

最佳答案

完全披露:我在 Bazel 工作。

这不是一个容易回答的问题,原因有两个。首先,性能高度依赖于场景。例如,我们通常希望干净的构建比仅更改单个文件的构建慢。其次,我不知道 Gradle 内部是如何工作的,他们最近做了很多工作来提高 Gradle 性能。

但我可以谈谈 Bazel 以及我们正在做什么以使其更快。我们一直致力于构建性能大约 10 年,早在我们公开之前就开始了。

关键特性是我们要求声明所有依赖项,并显式跟踪它们。如果您在 C++ 中使用头文件,或依赖于 Java 库,则必须在 BUILD 文件中声明此依赖项(并且我们强制通过沙箱化单个操作来声明这些依赖项)。由此产生三个影响:

首先,我们可以高度并行化构建,因为我们知道哪些东西依赖于哪些其他东西。

其次,我们可以非常快速地进行增量构建,因为当您更改特定文件(构建文件、头文件、源文件……)时,我们可以知道构建的哪些部分必须重新完成。

第三,我们几乎不需要进行干净的构建。其他构建工具通常需要“make clean”才能进入可预测的状态——因为 Bazel 知道所有的依赖关系,它可以在每次构建时进入可预测的状态。

另一个效果是我们可以远程缓存(即跨用户),甚至可以在另一台机器上执行,尽管在撰写本文时这两种方法都不受完全支持。

关于bazel - 为什么 bazel 比 gradle 快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44065484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com