Nesta página, descrevemos como usar flags para executar o Bazel com RAM limitada.
Em algumas situações, talvez você queira que o Bazel use 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 as builds forem grandes o suficiente, o Bazel poderá gerar um OutOfMemoryError
(OOM) quando não tiver memória suficiente. Você pode fazer com que o Bazel use menos memória, ao
custo de builds incrementais mais lentas, transmitindo as seguintes flags de comando:
--discard_analysis_cache,
--nokeep_state_after_build, e --notrack_incremental_state.
Essas flags vão minimizar a memória que o Bazel usa em uma build, ao custo de tornar as builds futuras mais lentas do que uma build incremental padrão.
Você também pode transmitir qualquer uma dessas flags individualmente:
--discard_analysis_cachereduz a memória usada durante a execução (não a análise). As builds incrementais não precisam refazer o carregamento de pacotes, mas precisam refazer a análise e a execução (embora o cache de ações no disco possa impedir a maioria das reexecuções).--notrack_incremental_statenão armazena nenhuma aresta no gráfico de dependência interno do Bazel, de modo que ele não possa ser usado para builds incrementais. A próxima build vai descartar esses dados, mas eles serão preservados até então para depuração interna, a menos que--nokeep_state_after_buildseja especificado.--nokeep_state_after_builddescartará todos os dados após a build, para que as builds incrementais precisem ser criadas do zero (exceto para o cache de ações no disco). Sozinho, ele não afeta a marca d'água da build atual.