หน้านี้มีข้อมูลเกี่ยวกับการเพิ่มประสิทธิภาพบิวด์ สำหรับแอป Android โดยเฉพาะ สําหรับการเพิ่มประสิทธิภาพการเพิ่มประสิทธิภาพทั่วไปด้วย Bazel โปรดดูที่การเพิ่มประสิทธิภาพ
การแจ้งว่าไม่เหมาะสมที่แนะนำ
แฟล็กจะอยู่ในไวยากรณ์การกำหนดค่า bazelrc
คุณจึงวางแฟล็กเหล่านี้ลงในไฟล์ bazelrc
โดยตรงและเรียกใช้ด้วย --config=<configuration_name>
ในบรรทัดคำสั่งได้
การทำโปรไฟล์ประสิทธิภาพ
Bazel เขียนโปรไฟล์การติดตาม JSON โดยค่าเริ่มต้นไปยังไฟล์ชื่อ command.profile.gz
ในฐานเอาต์พุตของ Bazel
ดูเอกสารเกี่ยวกับโปรไฟล์ JSON สำหรับ
วิธีอ่านและโต้ตอบกับโปรไฟล์
ผู้ปฏิบัติงานถาวรสำหรับการดำเนินการบิลด์ของ Android
ชุดย่อยของการดำเนินการของบิลด์ Android รองรับผู้ปฏิบัติงานอย่างต่อเนื่อง
การช่วยจำของการทำงานเหล่านี้ ได้แก่
- DexBuilder
- Javac
- น้ำตาล
- AaptPackage
- AndroidResourceParser
- AndroidResourceValidator
- AndroidResourceCompiler
- RClassGenerator
- AndroidResourceLink
- AndroidAapt2
- AndroidAssetMerger
- AndroidResourceMerger
- AndroidCompiledResourceMerger
การเปิดโอกาสให้ผู้ปฏิบัติงานสามารถสร้างประสิทธิภาพที่ดียิ่งขึ้นโดยการประหยัดค่าใช้จ่ายสำหรับสตาร์ทอัพของ JVM จากการเรียกใช้เครื่องมือเหล่านี้ แต่จะทำให้ต้องใช้หน่วยความจำเพิ่มขึ้นจากระบบอย่างต่อเนื่อง
หากต้องการเปิดใช้ผู้ปฏิบัติงานสำหรับการดำเนินการเหล่านี้ ให้ใช้แฟล็กเหล่านี้กับ --config=android_workers
ในบรรทัดคำสั่ง
build:android_workers --strategy=DexBuilder=worker
build:android_workers --strategy=Javac=worker
build:android_workers --strategy=Desugar=worker
# A wrapper flag for these resource processing actions:
# - AndroidResourceParser
# - AndroidResourceValidator
# - AndroidResourceCompiler
# - RClassGenerator
# - AndroidResourceLink
# - AndroidAapt2
# - AndroidAssetMerger
# - AndroidResourceMerger
# - AndroidCompiledResourceMerger
build:android_workers --persistent_android_resource_processor
จำนวนผู้ปฏิบัติงานถาวรเริ่มต้นที่สร้างขึ้นต่อการดำเนินการคือ 4
เราได้วัดประสิทธิภาพของบิลด์ที่ปรับปรุงแล้วโดยจำกัดจำนวนอินสแตนซ์สำหรับการดำเนินการแต่ละรายการเป็น 1
หรือ 2
แม้ว่าจำนวนนี้อาจแตกต่างกันไปตามระบบที่ Bazel กำลังทำงานและโปรเจ็กต์ที่กำลังสร้าง
หากต้องการจำกัดจำนวนอินสแตนซ์ของการดำเนินการ ให้ใช้แฟล็กเหล่านี้
build:android_workers --worker_max_instances=DexBuilder=2
build:android_workers --worker_max_instances=Javac=2
build:android_workers --worker_max_instances=Desugar=2
build:android_workers --worker_max_instances=AaptPackage=2
# .. and so on for each action you're interested in.
ใช้ AAPT2
aapt2
ได้รับการปรับปรุงประสิทธิภาพให้ดีกว่า aapt
และยังสร้าง APK ที่มีขนาดเล็กกว่าด้วย หากต้องการใช้ aapt2
ให้ใช้แฟล็ก --android_aapt=aapt2
หรือตั้งค่า aapt2
ใน aapt_version
ใน android_binary
และ android_local_test
การเพิ่มประสิทธิภาพ SDS
แฟล็ก --experimental_multi_threaded_digest
มีประโยชน์ในการเพิ่มประสิทธิภาพการคำนวณไดเจสต์ใน SSD