このページでは、フラグを使用して、RAM が限られている Bazel を実行する方法について説明します。
特定の状況では、Bazel で最小限のメモリを使用したい場合があります。最大ヒープは、起動フラグ --host_jvm_args
(--host_jvm_args=-Xmx2g
など)を使用して設定できます。
ただし、ビルドに十分な大きさがある場合、Bazel はメモリが不足しているときに OutOfMemoryError
(OOM)をスローすることがあります。以下のビルドフラグを渡すと、増分ビルドに時間がかかりますが、Bazel が使用するメモリは少なくなります。--discard_analysis_cache
、
--nokeep_state_after_build
、--notrack_incremental_state
。
これらのフラグを指定すると、Bazel がビルドで使用するメモリが最小限に抑えられます。ただし、今後の増分ビルドよりも、今後のビルドに時間がかかります。
これらのフラグのいずれかを個別に渡すこともできます。
--discard_analysis_cache
は、(分析ではなく)実行中に使用されるメモリを減らします。増分ビルドでは、パッケージの読み込みをやり直す必要はありませんが、分析と実行はやり直す必要があります(ただし、ディスク上のアクション キャッシュは、ほとんどの再実行を妨げることがあります)。--notrack_incremental_state
は、Bazel の内部依存関係グラフにエッジを保存しないため、増分ビルドには使用できません。次のビルドではそのデータが破棄されますが、--nokeep_state_after_build
が指定されていない限り、内部デバッグのためにそのデータは保持されます。--nokeep_state_after_build
はビルド後にすべてのデータを破棄するため、増分ビルドはゼロからビルドする必要があります(ディスク上のアクション キャッシュを除く)。現在のビルドの最高水準点には影響しません。