Ejecuta Bazel con RAM limitada

Informar un problema Ver fuente Por la noche · 7.2 · 7.1 · 7.0 · 6.5 · 6.4

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 configurar montón máximo mediante la función experimental 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, en el costo de las 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 lo que hace 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 usada durante la ejecución (no análisis). Las compilaciones incrementales no tendrán que rehacer la carga del paquete, deberá rehacer el análisis y la ejecución (aunque la caché de acciones en disco puede evitar la mayor cantidad de nuevas ejecuciones).
  • --notrack_incremental_state no almacenará ningún borde en la memoria interna de Bazel. gráfico de dependencias, de modo que no se pueda usar para compilaciones incrementales. La próxima compilación esos datos se descartarán, pero se conservarán hasta entonces. Para una 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 deben compilarse desde cero (excepto por la acción en disco) caché). Por sí solo, no afecta la marca de agua de la construcción actual.