我在一台具有4 GB RAM的计算机上使用Bazel(以编译TensorFlow项目)。然而,Bazel没有考虑我拥有的内存量,并且产生了太多的作业,导致我的机器交换,并导致更长的构建时间。
我已尝试通过我的~/.bazelrc
build --ram_utilization_factor 30
test --ram_utilization_factor 30
但这并没有帮助。无论如何,如何理解这些因素呢?我应该随机试一下其他的吗?
其他一些可能有帮助的标志:
--host_jvm_args
可以通过设置-Xms
和/或-Xmx
来设置JVM应该使用多少内存,例如bazel --host_jvm_args=-Xmx4g --host_jvm_args=-Xms512m build //foo:bar
(docs)。
--local_resources
和--ram_utilization_factor
标志(docs)。
--jobs=10
(或其他较小的数字,默认为200),例如bazel build --jobs=2 //foo:bar
(docs)。
请注意,--host_jvm_args
是启动选项,因此它位于命令(build
)之前,--jobs
是"普通"生成选项,因此它位于命令之后。