我有一个包含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
测试中-但这会杀死任何并行性。
0.15.2
)