Nesta página, descrevemos como usar flags para executar o Bazel com RAM limitada.
Em algumas situações, o Bazel pode usar o mínimo de memória. É possível definir
heap máximo por meio da sinalização de inicialização
--host_jvm_args,
como --host_jvm_args=-Xmx2g.
No entanto, se os builds forem grandes o suficiente, o Bazel poderá gerar uma OutOfMemoryError.
(OOM, na sigla em inglês) quando não há memória suficiente. É possível fazer o Bazel usar menos memória com
o custo de builds incrementais mais lentos passando as seguintes flags de comando:
--discard_analysis_cache,
--nokeep_state_after_build e --notrack_incremental_state.
Essas flags minimizarão a memória que o Bazel usa em um build, ao custo de
tornando futuros builds mais lentos do que um build incremental padrão.
Também é possível transmitir qualquer uma dessas sinalizações individualmente:
--discard_analysis_cache reduz a memória usada durante a execução
análise). Builds incrementais não vão precisar refazer o carregamento de pacotes, mas
refazer a análise e a execução (embora o cache de ação no disco possa
impedir a maior parte da reexecução).
--notrack_incremental_state não vai armazenar nenhuma borda na memória interna
gráfico de dependências, de modo que ele não possa ser usado em builds incrementais. O próximo build
vai descartar esses dados, mas eles serão preservados até lá para depuração interna,
a menos que --nokeep_state_after_build seja especificado.
--nokeep_state_after_build descartará todos os dados após o build para que
builds incrementais precisam ser criados do zero (exceto para a ação em disco)
cache). Por si só, isso não afeta a marca marcante do build atual.