Belleği Optimize Et

. Sorun bildirin Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

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. Bu ayarı, başlangıç işareti aracılığıyla maksimum yığın --host_jvm_args --host_jvm_args=-Xmx2g gibi.

Ancak yapılarınız yeterince büyükse Bazel bir OutOfMemoryError (OOM) duruma getirmeye çalışır. Bazel'ın daha az bellek kullanmasını sağlayabilirsiniz. aşağıdaki komut işaretlerini ileterek daha yavaş artımlı derlemelerin maliyetini artırır: --discard_analysis_cache --nokeep_state_after_build, ve --notrack_incremental_state.

Bu işaretler, Bazel'in derlemede kullandığı belleği en aza indirir. gelecekteki derlemelerin daha yavaş yapılmasını sağlar.

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

  • --discard_analysis_cache, yürütme sırasında kullanılan belleği azaltır ( analizi). Artımlı derlemelerde paket yüklemeyi yeniden yapması gerekmez analizi ve yürütmeyi yeniden yapmanız gerekir (ancak disk üzerindeki işlem önbelleği birçok yeniden yürütmeyi önler).
  • --notrack_incremental_state, Bazel'in dahili öğesindeki kenarları depolamaz ve artımlı derlemelerde kullanılamaz. Sonraki derleme bu verileri siler ancak dahili hata ayıklama için o zamana kadar korunur. (--nokeep_state_after_build belirtilmediği sürece)
  • --nokeep_state_after_build, derleme işleminden sonra tüm verileri silecek. artımlı derlemelerin sıfırdan yapılması gerekir (disk üzerinde işlem önbellek). Bu durum tek başına mevcut derlemenin yüksek su seviyesini etkilemez.

Bellek Profili Oluşturma

Bazel, kuralınızın verilerini kontrol etmenize yardımcı olabilecek yerleşik bir bellek profilleyiciye sahiptir. bazı işaretler vardır. Bu süreç hakkında daha fazla bilgiye şuradan ulaşabilirsiniz: Bellek Profili Oluşturma özel kuralların performansını artırma ile ilgili dokümanlar.