Esta página contiene información sobre cómo optimizar el rendimiento de compilación para Android en aplicaciones web específicamente. Para obtener información sobre la optimización general del rendimiento de compilación con Bazel, consulta Optimización del rendimiento.
Marcas recomendadas
Las banderas están en
Sintaxis de configuración de bazelrc
, por lo que
se pueden pegar directamente en un archivo bazelrc
e invocarse con
--config=<configuration_name>
en la línea de comandos.
Rendimiento de la generación de perfiles
Bazel escribe un perfil de seguimiento JSON de forma predeterminada en un archivo llamado
command.profile.gz
en la base de salida de Bazel.
Consulta la documentación del perfil JSON para obtener
cómo leer e interactuar con el perfil.
Trabajadores persistentes para acciones de compilación de Android.
Un subconjunto de acciones de compilación de Android admite lo siguiente: trabajadores persistentes.
Estas acciones mnemónicos son:
- DexBuilder
- Java
- Expansión de sintaxis
- AaptPackage
- AndroidResourceParser
- AndroidResourceValidator
- AndroidResourceCompiler
- RClassGenerator
- AndroidResourceLink
- AndroidAapt2
- AndroidAssetMerger
- AndroidResourceMerger
- AndroidCompiledResourceMerger
La habilitación de trabajadores puede mejorar el rendimiento de compilación si se ahorra en JVM costos de las startups por invocar cada una de estas herramientas, pero a costa de un aumento de uso de memoria en el sistema a través de su persistencia.
Para habilitar trabajadores para estas acciones, aplica estas marcas con
--config=android_workers
en la línea de comandos:
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
La cantidad predeterminada de trabajadores persistentes creados por acción es 4
. Tenemos
del rendimiento de compilación mejorado
limitando el número de instancias para cada acción a 1
o 2
, aunque este
puede variar según el sistema en el que se ejecute Bazel y el proyecto que
construyen.
Para limitar el número de instancias de una acción, aplica estas marcas:
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.
Cómo usar AAPT2
aapt2
mejoró
rendimiento durante aapt
y crea APK más pequeños. Para usar aapt2
, utiliza la
Marca --android_aapt=aapt2
o configura aapt2
en aapt_version
el
android_binary
y android_local_test
.
Optimizaciones de SSD
La marca --experimental_multi_threaded_digest
es útil para optimizar el resumen.
el procesamiento en SSD.