Halaman ini menjelaskan cara membatasi dan mengurangi memori yang digunakan Bazel.
Menjalankan Bazel dengan RAM Terbatas
Dalam situasi tertentu, Anda mungkin ingin Bazel menggunakan memori minimal. Anda dapat menyetel
heap maksimum melalui flag startup
--host_jvm_args
,
seperti --host_jvm_args=-Xmx2g
.
Namun, jika build Anda cukup besar, Bazel mungkin akan menampilkan OutOfMemoryError
(OOM) saat tidak memiliki cukup memori. Anda dapat membuat Bazel menggunakan lebih sedikit memori, dengan
biaya 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, dengan mengorbankan membuat build mendatang lebih lambat dari build inkremental standar.
Anda juga dapat meneruskan salah satu tanda ini secara terpisah:
--discard_analysis_cache
akan mengurangi memori yang digunakan selama eksekusi (bukan analisis data). Build inkremental tidak harus mengulangi pemuatan paket, tetapi harus mengulangi analisis dan eksekusi (meskipun {i>cache<i} tindakan pada {i>on-disk<i} dapat mencegah sebagian besar eksekusi ulang).--notrack_incremental_state
tidak akan menyimpan tepi apa pun di bagian internal Bazel grafik dependensi, sehingga tidak bisa digunakan untuk build inkremental. Build berikutnya akan membuang data tersebut, namun data itu dipertahankan sampai saat itu, untuk {i>debugging<i} internal, kecuali jika--nokeep_state_after_build
ditentukan.--nokeep_state_after_build
akan menghapus semua data setelah build, sehingga build inkremental harus di-build dari awal (kecuali untuk tindakan pada disk cache). Sendiri, hal ini tidak memengaruhi level air tinggi dari build saat ini.
Profiling Memori
Bazel dilengkapi dengan profiler memori bawaan yang dapat membantu Anda memeriksa penggunaan memori. Baca selengkapnya tentang proses ini di Bagian Memory Profiling dalam dokumentasi tentang cara meningkatkan performa aturan kustom.