Sınırlı RAM'e sahip Bazel'ı çalıştırma

Bu sayfada, Bazel'i sınırlı RAM ile çalıştırmak için işaretlerin nasıl kullanılacağı açıklanmaktadır.

Bazı durumlarda Bazel'in minimum bellek kullanmasını isteyebilirsiniz. Başlangıç işareti --host_jvm_args ile maksimum yığını --host_jvm_args=-Xmx2g gibi ayarlayabilirsiniz.

Ancak derlemeleriniz yeterince büyükse Bazel, yeterli belleğe sahip olmadığında OutOfMemoryError (OOM) hatası verebilir. Aşağıdaki komut işaretlerini ileterek Bazel'in daha az bellek kullanmasını sağlayabilirsiniz. Bu durumda, artımlı derlemeler daha yavaş olur: --discard_analysis_cache, --nokeep_state_after_build ve --notrack_incremental_state.

Bu işaretler, gelecekteki derlemelerin standart bir artımlı derlemeye göre daha yavaş olması pahasına Bazel'in bir derlemede kullandığı belleği en aza indirir.

Bu işaretlerden herhangi birini tek tek de iletebilirsiniz:

  • --discard_analysis_cache, yürütme sırasında kullanılan belleği (analiz sırasında değil) azaltır. Artımlı derlemelerde paket yükleme işleminin yeniden yapılması gerekmez ancak analiz ve yürütme işlemlerinin yeniden yapılması gerekir (ancak diskteki işlem önbelleği, yeniden yürütmenin büyük bir kısmını engelleyebilir).
  • --notrack_incremental_state, Bazel'in dahili bağımlılık grafiğinde herhangi bir kenarı depolamadığı için artımlı derlemelerde kullanılamaz. Bir sonraki derleme bu verileri siler ancak --nokeep_state_after_build belirtilmediği sürece dahili hata ayıklama için bu veriler korunur.
  • --nokeep_state_after_build, derlemeden sonra tüm verileri siler. Bu nedenle, artımlı derlemelerin sıfırdan oluşturulması gerekir (disk üzerindeki işlem önbelleği hariç). Tek başına, mevcut derlemenin en yüksek değerini etkilemez.