Ejecuta Bazel con RAM limitada

Informar un problema Ver fuente

En esta página, se describe cómo usar marcas para ejecutar Bazel con RAM limitada.

En algunas situaciones, es posible que quieras que Bazel use la memoria mínima. Puedes establecer el montón máximo con la marca de inicio --host_jvm_args, como --host_jvm_args=-Xmx2g.

Sin embargo, si tus compilaciones son lo suficientemente grandes, es posible que Bazel arroje una OutOfMemoryError (OOM) cuando no tiene suficiente memoria. Puedes hacer que Bazel use menos memoria, a costo de compilaciones incrementales más lentas, si pasas las siguientes marcas de comando: --discard_analysis_cache, --nokeep_state_after_build y --notrack_incremental_state.

Estas marcas minimizarán la memoria que usa Bazel en una compilación, a costa de que las compilaciones futuras sean más lentas que una compilación incremental estándar.

También puedes pasar cualquiera de estas marcas de forma individual:

  • --discard_analysis_cache reducirá la memoria que se usa durante la ejecución (no el análisis). Las compilaciones incrementales no tendrán que rehacer la carga del paquete, pero deberán rehacer el análisis y la ejecución (aunque la caché de acciones en el disco puede evitar que la mayoría de las ejecuciones se vuelvan a ejecutar).
  • --notrack_incremental_state no almacenará ningún perímetro en el gráfico de dependencia interno de Bazel, por lo que no se podrá usar para las compilaciones incrementales. La siguiente compilación descartará esos datos, pero se conservarán hasta ese momento para la depuración interna, a menos que se especifique --nokeep_state_after_build.
  • --nokeep_state_after_build descartará todos los datos después de la compilación, de modo que las compilaciones incrementales deban compilar desde cero (excepto la caché de acciones en disco). Por sí solo, no afecta la marca de agua de la construcción actual.