เพิ่มประสิทธิภาพหน่วยความจำ
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
วันที่
รายงานปัญหาopen_in_new
ดูแหล่งที่มาopen_in_new
ตอนกลางคืน
·
7.3
·
7.2
·
7.1
·
7.0
·
6.5
หน้านี้จะอธิบายวิธีจำกัดและลดการใช้หน่วยความจำของ Bazel
ใช้งาน Bazel ซึ่งมี RAM จำกัด
ในบางสถานการณ์ คุณอาจต้องการให้ Bazel ใช้หน่วยความจำน้อยที่สุด คุณสามารถตั้งค่า
ฮีปสูงสุดผ่าน Flag การเริ่มต้น
--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
จะไม่จัดเก็บขอบภายในของ Bazel
กราฟการอ้างอิง เพื่อไม่ให้ใช้งานสำหรับบิลด์ที่เพิ่มขึ้น บิลด์ถัดไป
จะทิ้งข้อมูลดังกล่าว แต่ข้อมูลจะยังคงอยู่จนถึงเวลานั้น สำหรับการแก้ไขข้อบกพร่องภายใน
ถ้าไม่ได้ระบุ --nokeep_state_after_build
--nokeep_state_after_build
จะทิ้งข้อมูลทั้งหมดหลังจากบิลด์ ดังนั้น
บิลด์ส่วนเพิ่มต้องสร้างใหม่ตั้งแต่ต้น (ยกเว้นการดําเนินการบนดิสก์
แคช) เพียงอย่างเดียว จะไม่ส่งผลกับส่วนที่เป็นน้ำสูงของบิลด์ปัจจุบัน
การทำโปรไฟล์หน่วยความจำ
Bazel มาพร้อมกับเครื่องมือสร้างโปรไฟล์หน่วยความจำในตัว
ที่ช่วยให้คุณตรวจสอบ
ที่ใช้หน่วยความจำได้ อ่านเพิ่มเติมเกี่ยวกับกระบวนการนี้ใน
ส่วนการทำโปรไฟล์หน่วยความจำของ
เอกสารเกี่ยวกับวิธีปรับปรุงประสิทธิภาพของกฎที่กำหนดเอง
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2024-08-13 UTC
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"ไม่มีข้อมูลที่ฉันต้องการ"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"ล้าสมัย"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"ปัญหาเกี่ยวกับการแปล"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"อื่นๆ"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"เข้าใจง่าย"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"แก้ปัญหาของฉันได้"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"อื่นๆ"
}]
{"lastModified": "\u0e2d\u0e31\u0e1b\u0e40\u0e14\u0e15\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14 2024-08-13 UTC"}
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2024-08-13 UTC"],[],[]]