Bu sayfada, Android için derleme performansını optimize etmeyle ilgili 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
- Java
- Tatlı
- AaptPackage
- AndroidResourceParser
- AndroidResourceValidator
- AndroidResourceCompiler
- RClassGenerator
- AndroidResourceLink
- AndroidAapt2
- AndroidAssetMerger
- AndroidResourceMerger
- AndroidCompiledResourceMerger
Çalışanları etkinleştirmek, JVM'den tasarruf ederek daha iyi derleme performansı sağlayabilir bu araçların her birinin çağrılmasından kaynaklanan bir başlangıç maliyeti yaratmakla birlikte, sistemdeki bellek kullanımlarını etkileyebilir.
Çalışanları bu işlemlerde etkinleştirmek için bu işaretleri
Komut satırında --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
İşlem başına oluşturulan varsayılan kalıcı çalışan sayısı: 4
. Ş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, özeti optimize etmek için faydalıdır
daha iyi performans gösterir.