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

Sorun bildirin Kaynağı göster

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. Maksimum yığını, --host_jvm_args=-Xmx2g gibi başlangıç işaretini --host_jvm_args kullanarak ayarlayabilirsiniz.

Ancak derlemeleriniz yeterince büyükse Bazel yeterli belleğe sahip olmadığında OutOfMemoryError (OOM) işlevi sunabilir. Şu komut işaretlerini ileterek daha yavaş artımlı derlemeler pahasına Bazel'in daha az bellek kullanmasını sağlayabilirsiniz: --discard_analysis_cache, --nokeep_state_after_build ve --notrack_incremental_state.

Bu işaretler, gelecekteki derlemelerin standart artımlı derlemeden daha yavaş olmasına yol açarak Bazel'in derlemede kullandığı belleği en aza indirir.

Ayrıca, bu işaretlerden herhangi birini tek tek de iletebilirsiniz:

  • --discard_analysis_cache, yürütme sırasında (analiz değil) kullanılan belleği azaltır. Artımlı derlemelerde paket yüklemeyi yeniden yapması gerekmez ancak analizi ve yürütmeyi yeniden yapması gerekir (ancak disk üzerindeki işlem önbelleği çoğu yeniden yürütme işlemini engelleyebilir).
  • --notrack_incremental_state, Bazel'in iç bağımlılık grafiğindeki kenarları depolamaz. Bu nedenle, artımlı derlemelerde kullanılamaz. Sonraki derleme bu verileri siler ancak --nokeep_state_after_build belirtilmediği sürece veriler dahili hata ayıklama için o zamana kadar korunur.
  • --nokeep_state_after_build, derleme işleminden sonra tüm verileri siler. Böylece, ek derlemelerin sıfırdan oluşturulması gerekir (disk üzerindeki işlem önbelleği hariç). Bu durum tek başına mevcut derlemenin yüksek su seviyesini etkilemez.