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 o
heap máximo usando a flag 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 houver memória suficiente. Para fazer o Bazel usar menos memória,
ao custo de builds incrementais mais lentos, transmita as seguintes flags de comando:
--discard_analysis_cache
,
--nokeep_state_after_build
e --notrack_incremental_state
.
Essas sinalizações minimizam a memória que o Bazel usa em uma versão. No entanto, as próximas versões ficam mais lentas do que um build incremental padrão.
Também é possível transmitir qualquer uma dessas sinalizações individualmente:
--discard_analysis_cache
reduzirá a memória usada durante a execução (não análise). Versões incrementais não precisarão refazer o carregamento do pacote, mas terão que refazer a análise e a execução, embora o cache de ações no disco possa impedir a maioria das novas execuções.- O
--notrack_incremental_state
não vai armazenar nenhuma borda no gráfico de dependência interna do Bazel, 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
vai descartar todos os dados após a criação, de modo que os builds incrementais tenham que ser criados do zero (exceto para o cache de ações no disco). Por si só, isso não afeta a marca marcante do build atual.