Optimalkan Memori

Laporkan masalah Lihat sumber

Halaman ini menjelaskan cara membatasi dan mengurangi penggunaan memori yang Bazel gunakan.

Menjalankan Bazel dengan RAM Terbatas

Dalam situasi tertentu, Anda mungkin ingin Bazel menggunakan memori minimal. Anda dapat menetapkan heap maksimum melalui tanda startup --host_jvm_args, seperti --host_jvm_args=-Xmx2g.

Namun, jika build Anda cukup besar, Bazel dapat menampilkan OutOfMemoryError (OOM) saat tidak memiliki cukup memori. Anda dapat membuat Bazel menggunakan lebih sedikit memori, dengan mengorbankan build inkremental yang lebih lambat, dengan meneruskan flag perintah berikut: --discard_analysis_cache, --nokeep_state_after_build, dan --notrack_incremental_state.

Flag ini akan meminimalkan memori yang digunakan Bazel dalam build, tetapi akibatnya build mendatang akan menjadi lebih lambat daripada build inkremental standar.

Anda juga dapat meneruskan salah satu flag ini satu per satu:

  • --discard_analysis_cache akan mengurangi memori yang digunakan selama eksekusi (bukan analisis). Build inkremental tidak harus mengulangi pemuatan paket, tetapi harus mengulangi analisis dan eksekusi (meskipun cache tindakan di disk dapat mencegah sebagian besar eksekusi ulang).
  • --notrack_incremental_state tidak akan menyimpan tepi apa pun dalam grafik dependensi internal Bazel, sehingga tidak dapat digunakan untuk build inkremental. Build berikutnya akan menghapus data tersebut, tetapi data dipertahankan hingga waktu tersebut, untuk proses debug internal, kecuali jika --nokeep_state_after_build ditentukan.
  • --nokeep_state_after_build akan menghapus semua data setelah build, sehingga build inkremental harus mem-build dari awal (kecuali untuk cache tindakan di disk). Sendiri, itu tidak memengaruhi tanda air tinggi pada build saat ini.

Pembuatan Profil Memori

Bazel dilengkapi dengan memory profiler bawaan yang dapat membantu Anda memeriksa penggunaan memori aturan. Baca selengkapnya tentang proses ini di bagian Profil Memori dalam dokumentasi kami tentang cara meningkatkan performa aturan kustom.