หน้านี้อธิบายวิธีใช้แฟล็กเพื่อเรียกใช้ Bazel ด้วย RAM ที่จำกัด
ในบางสถานการณ์ คุณอาจต้องการให้ Bazel ใช้หน่วยความจำน้อยที่สุด คุณสามารถตั้งค่า
ฮีปสูงสุดผ่านแฟล็กเริ่มต้น
--host_jvm_args,
เช่น --host_jvm_args=-Xmx2g.
อย่างไรก็ตาม หากบิลด์มีขนาดใหญ่พอ Bazel อาจแสดง OutOfMemoryError (OOM) เมื่อมีหน่วยความจำไม่เพียงพอ คุณสามารถทำให้ Bazel ใช้หน่วยความจำน้อยลงได้โดยส่งแฟล็กคำสั่งต่อไปนี้
--discard_analysis_cache,
--nokeep_state_after_build และ --notrack_incremental_state ซึ่งจะทำให้บิลด์แบบเพิ่มทีละส่วนช้าลง
แฟล็กเหล่านี้จะลดหน่วยความจำที่ Bazel ใช้ในบิลด์ลง แต่จะทำให้บิลด์ในอนาคตช้ากว่าบิลด์แบบเพิ่มทีละส่วนมาตรฐาน
นอกจากนี้ คุณยังส่งแฟล็กใดแฟล็กหนึ่งต่อไปนี้แยกกันได้ด้วย
--discard_analysis_cacheจะลดหน่วยความจำที่ใช้ระหว่างการดำเนินการ (ไม่ใช่การวิเคราะห์) บิลด์แบบเพิ่มทีละส่วนจะไม่ต้องโหลดแพ็กเกจซ้ำ แต่จะต้องทำการวิเคราะห์และดำเนินการซ้ำ (แม้ว่าแคชการดำเนินการบนดิสก์จะป้องกันการดำเนินการซ้ำได้ส่วนใหญ่)--notrack_incremental_stateจะไม่จัดเก็บขอบในกราฟทรัพยากร Dependency ภายในของ Bazel เพื่อให้กราฟดังกล่าวใช้ไม่ได้กับบิลด์แบบเพิ่มทีละส่วน บิลด์ถัดไปจะทิ้งข้อมูลดังกล่าว แต่ระบบจะเก็บข้อมูลไว้จนกว่าจะถึงตอนนั้นเพื่อการแก้ไขข้อบกพร่องภายใน เว้นแต่จะระบุ--nokeep_state_after_build--nokeep_state_after_buildจะทิ้งข้อมูลทั้งหมดหลังจากบิลด์ เพื่อให้บิลด์แบบเพิ่มทีละส่วนต้องสร้างใหม่ตั้งแต่ต้น (ยกเว้นแคชการดำเนินการบนดิสก์) การใช้แฟล็กนี้เพียงอย่างเดียวจะไม่ส่งผลต่อขีดจำกัดสูงสุดของบิลด์ปัจจุบัน