หน้านี้มีข้อมูลเกี่ยวกับการเพิ่มประสิทธิภาพบิลด์สำหรับแอป Android โดยเฉพาะ สําหรับการเพิ่มประสิทธิภาพการบิลด์ทั่วไปด้วย Bazel โปรดดูหัวข้อการเพิ่มประสิทธิภาพ
Flag ที่แนะนำ
ธงจะอยู่ใน
ไวยากรณ์การกำหนดค่า bazelrc
ดังนั้น
สามารถวางลงในไฟล์ bazelrc
โดยตรงและเรียกใช้
--config=<configuration_name>
ในบรรทัดคำสั่ง
ประสิทธิภาพการทำโปรไฟล์
Bazel เขียนโปรไฟล์การติดตาม JSON โดยค่าเริ่มต้นลงในไฟล์ชื่อ
command.profile.gz
ในฐานเอาต์พุตของ Bazel
ดูเอกสารประกอบของโปรไฟล์ JSON สำหรับ
วิธีอ่านและโต้ตอบกับโปรไฟล์
Worker แบบถาวรสำหรับการดำเนินการสร้าง Android
ชุดย่อยของการดำเนินการบิลด์ของ Android รองรับ ถาวร
การดำเนินการเหล่านี้ สิ่งที่ช่วยจำได้มีดังนี้
- DexBuilder
- Javac
- Desugar
- 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 ทำงานอยู่ และโปรเจ็กต์ที่กำลังดำเนินอยู่
สร้าง
หากต้องการจำกัดจำนวนอินสแตนซ์สําหรับการดําเนินการ ให้ใช้ Flag ต่อไปนี้
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
ให้ใช้ Flag --android_aapt=aapt2
หรือตั้งค่า aapt2
ใน aapt_version
ใน android_binary
และ android_local_test
การเพิ่มประสิทธิภาพ SDS
Flag --experimental_multi_threaded_digest
มีประโยชน์ในการเพิ่มประสิทธิภาพไดเจสต์
การประมวลผลแบบดิสก์ (SSD)