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 menetapkan
heap maksimum melalui flag startup
--host_jvm_args
,
seperti --host_jvm_args=-Xmx2g
.
Namun, jika build Anda cukup besar, Bazel dapat menampilkan OutOfMemoryError
(OOM) jika tidak memiliki cukup memori. Anda dapat membuat Bazel menggunakan lebih sedikit memori, dengan
mengorbankan kecepatan build inkremental, dengan meneruskan tanda 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 daripada build inkremental standar.
Anda juga dapat meneruskan salah satu tanda ini satu per satu:
--discard_analysis_cache
akan mengurangi memori yang digunakan selama eksekusi (bukan analisis). Build inkremental tidak perlu mengulang pemuatan paket, tetapi harus mengulang 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 tersebut akan dipertahankan hingga saat itu, 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 dibangun dari awal (kecuali untuk cache tindakan di disk). Dengan sendirinya, tindakan ini tidak memengaruhi tanda batas atas build saat ini.
Pembuatan Profil Memori
Bazel dilengkapi dengan profiler memori bawaan yang dapat membantu Anda memeriksa penggunaan memori aturan. Baca selengkapnya tentang proses ini di bagian Pembuatan Profil Memori dalam dokumentasi kami tentang cara meningkatkan performa aturan kustom.