このページには、Android のビルド パフォーマンスの最適化に関する情報が掲載されています 特定することですBazel を使用した一般的なビルド パフォーマンスの最適化については、以下をご覧ください。 パフォーマンスの最適化。
推奨フラグ
フラグは
bazelrc
構成構文なので、
bazelrc
ファイルに直接貼り付け、
コマンドラインで --config=<configuration_name>
を実行します。
パフォーマンスのプロファイリング
Bazel はデフォルトで JSON トレース プロファイルを
Bazel の出力ベースの command.profile.gz
。
JSON プロファイルのドキュメント
プロフィールの閲覧と操作の方法。
Android ビルド アクション用の永続ワーカー。
Android ビルド アクションのサブセットがサポートしている 永続ワーカー。
これらのアクション覚えておいてください。
- DexBuilder
- Javac
- 脱糖
- 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
です。Google には
各アクションのインスタンス数を 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
を使用するには、次のコマンドを使用します。
aapt_version
に --android_aapt=aapt2
フラグを設定するか、aapt2
を設定します。
android_binary
、android_local_test
。
SSD の最適化
--experimental_multi_threaded_digest
フラグはダイジェストの最適化に役立ちます。
SSD での計算に使用されます。