Esecuzione di Bazel con RAM limitata

In questa pagina viene spiegato come utilizzare i flag per eseguire Bazel con RAM limitata.

In alcune situazioni, potresti utilizzare Bazel affinché utilizzi una quantità minima di memoria. Puoi impostare l'heap massimo tramite il flag di avvio --host_jvm_args, ad esempio --host_jvm_args=-Xmx2g.

Tuttavia, se le build sono abbastanza grandi, Bazel potrebbe generare un messaggio OutOfMemoryError (OOM) in assenza di memoria sufficiente. Puoi consentire a Bazel di utilizzare meno memoria, a scapito di build incrementali più lente, passando i seguenti flag di comando: --discard_analysis_cache, --nokeep_state_after_build e --notrack_incremental_state

Questi flag riducono al minimo la memoria utilizzata da Bazel in una build, al costo di rendere le build future più lente di una build incrementale standard.

Puoi anche inviare uno qualsiasi di questi flag singolarmente:

  • --discard_analysis_cache ridurrà la memoria utilizzata durante l'esecuzione (non l'analisi). Le build incrementali non devono ripetere il caricamento del pacchetto, ma devono ripetere l'analisi e l'esecuzione (anche se la cache delle azioni sul disco può impedire la maggior parte della riesecuzione).
  • --notrack_incremental_state non archivierà bordi nel grafico della dipendenza interna di Bazel, in modo inutilizzabile per le build incrementali. La build successiva elimina i dati, che però vengono conservati fino ad allora, per il debug interno, a meno che non venga specificato --nokeep_state_after_build.
  • --nokeep_state_after_build elimina tutti i dati dopo la build, pertanto le build incrementali devono essere create da zero (ad eccezione della cache delle azioni sul disco). Solo non influisce sul livello dell'acqua elevata della build corrente.