Belleği Optimize Et

Sorun bildirin Kaynağı göster

Bu sayfada, Bazel'in kullandığı belleğin nasıl sınırlandırılacağı ve azaltılacağı açıklanmaktadır.

Bazel Sınırlı RAM ile Çalıştırılıyor

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. Aşağıdaki komut işaretlerini ileterek Bazel'in daha yavaş artımlı derlemeler pahasına 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.

Bellek Profili Oluşturma

Bazel, kuralınızın bellek kullanımını kontrol etmenize yardımcı olabilecek yerleşik bir bellek profil oluşturucusuyla birlikte gelir. Özel kuralların performansını iyileştirme hakkındaki belgelerimizin Bellek Profili Oluşturma bölümünde bu işlem hakkında daha fazla bilgi edinin.