bazel并行和大型/巨大测试目标

时间:2018-08-01 09:41:30

标签: bazel

我有一个包含5到6个大型测试的存储库,这需要更长的时间并消耗大量资源。我在本地运行bazel时遇到问题,因为这些测试与其他操作并行运行。

问题如下:

JUnit4 Test Runner
takeStaticsFromRepo=false
Evaluating Ruby ERB methods ...Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000077f280000, 91750400, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 91750400 bytes for committing reserved memory.
# An error report file with more information is saved as:

我知道,如果没有远程执行并且没有提供--jobs=x标志,那么bazel将根据内核数量并行运行动作。

很明显-我的“ large +”目标不能像“ medium-”那样并行运行-它们需要更多的资源。上述问题偶尔会发生。

有没有办法做更好的节流? 对每个测试大小的内存消耗进行一些启发,并并行执行动态操作数。


一种解决方案是将标记exclusive添加到large测试中-但这会杀死任何并行性。


  • 我正在使用linux上的最新版本(0.15.2
  • 我真的希望不要使用test_size_filter将bazel调用拆分为多个调用。

0 个答案:

没有答案