Bu sayfada, Android için derleme performansını optimize etme hakkında bilgiler yer alır örneğine bakalım. Bazel ile genel derleme performansı optimizasyonu için bkz. Performansı Optimize Etme
Önerilen işaretler
İşaretler
bazelrc
yapılandırması söz dizimi;
doğrudan bir bazelrc
dosyasına yapıştırılıp
komut satırında --config=<configuration_name>
.
Profil oluşturma performansı
Bazel, varsayılan olarak
Bazel'in çıktı tabanında command.profile.gz
.
Şu konular için JSON Profili dokümanlarına bakın:
profili okuma ve profille etkileşim kurma.
Android derleme işlemleri için kalıcı çalışanlar.
Android derleme işlemlerinin bir alt kümesi kalıcı çalışanlar.
Bu işlemlerin anımsatıcılar şunlardır:
- DexBuilder
- Javac
- Şeker ayrıştırma
- AaptPackage
- AndroidResourceParser
- AndroidResourceValidator
- AndroidResourceCompiler
- RClassGenerator
- AndroidResourceLink
- AndroidAapt2
- AndroidAssetMerger
- AndroidResourceMerger
- AndroidCompiledResourceMerger
İşleyicileri etkinleştirmek, bu araçların her birinin çağrılmasıyla ilgili JVM başlatma maliyetlerinden tasarruf ederek daha iyi derleme performansı sağlayabilir ancak bu araçlar kalıcı hale getirildiğinde sistemdeki bellek kullanımı artar.
İşçileri bu işlemler için etkinleştirmek üzere komut satırında --config=android_workers
ile aşağıdaki işaretleri uygulayın:
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
İşlem başına oluşturulan kalıcı çalışan sayısı varsayılan olarak 4
'tür. Şu anda
İyileştirilmiş derleme performansını ölçtü
her işlem için örnek sayısını 1
veya 2
olarak sınırlayarak,
Bazel'in şu anda üzerinde çalıştığı sisteme ve projenin
geliştirmenizi sağlar.
Bir işlem için örnek sayısını sınırlamak amacıyla şu işaretleri uygulayın:
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'yi kullanma
aapt2
iyileştirildi
daha küçük APK'lar oluşturur.aapt
aapt2
özelliğini kullanmak için
--android_aapt=aapt2
bayrağı veya şurada aapt2
ayarlayın: aapt_version
android_binary
ve android_local_test
.
SSD optimizasyonları
--experimental_multi_threaded_digest
işareti, SSD'lerde özet hesaplamayı optimize etmek için kullanışlıdır.