דף זה מכיל מידע על אופטימיזציה של ביצועי ה-build של אפליקציות ל-Android באופן ספציפי. ב-Bazel תוכלו לראות אופטימיזציה כללית של ביצועי הביצועים, בקטע אופטימיזציה של ביצועים.
סימונים מומלצים
הסימונים מופיעים בתחביר ההגדרה של bazelrc
, כך שאפשר להדביק אותם ישירות בקובץ bazelrc
ולהפעיל אותם עם
--config=<configuration_name>
שורת פקודה.
ביצועי פרופילים
Bazel כותבת כברירת מחדל פרופיל של מעקב JSON לקובץ שנקרא
command.profile.gz
בבסיס הפלט של Bazel.
בתיעוד של פרופיל JSON
מוסבר איך לקרוא את הפרופיל ולקיים איתו אינטראקציה.
עובדים קבועים עבור פעולות בנייה של Android.
קיימת תמיכה בתת-קבוצה של פעולות build של Android עבור עובדים עקשנים הנתונים.
מנחות הפעולות האלה הן:
- DexBuilder
- ג'אק
- שומן חזיר
- חבילת דירות
- AndroidResourceParser
- AndroidResourceResourceator
- AndroidResourceCompiler
- RClassGenerator
- קישור ל-AndroidResourceLink
- AndroidAapt2
- AndroidAssetמיזוג
- AndroidResourceמיזוג
- AndroidCompiledResourceResourcer
הפעלת עובדים יכולה לשפר את ביצועי הבנייה על ידי חיסכון בעלויות האתחול של 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
'. מדדנו את ביצועי ה-build המשופרים
על ידי הגבלת מספר המופעים של כל פעולה אל 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)