Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
使用有限 RAM 运行 Bazel
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本页介绍了如何使用标志在 RAM 有限的情况下运行 Bazel。
在某些情况下,您可能希望 Bazel 使用最少的内存。您可以通过启动标志 --host_jvm_args 设置最大堆,例如 --host_jvm_args=-Xmx2g。
不过,如果您的 build 足够大,当内存不足时,Bazel 可能会抛出 OutOfMemoryError (OOM)。您可以传递以下命令标志,使 Bazel 使用更少的内存,但代价是增量构建速度会变慢:--discard_analysis_cache、--nokeep_state_after_build 和 --notrack_incremental_state。
这些标志会尽可能减少 Bazel 在构建中使用的内存,但代价是未来的构建会比标准增量构建慢。
您还可以单独传递以下任一标志:
--discard_analysis_cache 将减少执行期间(而非分析期间)使用的内存。增量 build 无需重新加载软件包,但必须重新进行分析和执行(不过,磁盘上的操作缓存可以防止大多数重新执行)。
--notrack_incremental_state 不会在 Bazel 的内部依赖关系图中存储任何边,因此无法用于增量 build。下一个 build 会舍弃该数据,但在那之前,该数据会保留下来以供内部调试,除非指定了 --nokeep_state_after_build。
--nokeep_state_after_build 会在 build 后舍弃所有数据,因此增量 build 必须从头开始构建(磁盘上的操作缓存除外)。单独使用时,它不会影响当前 build 的高水位标记。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2026-05-07。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2026-05-07。"],[],[]]