Android बिल्ड परफ़ॉर्मेंस

किसी समस्या की शिकायत करें सोर्स देखें रात · 7.4 को अपनाएं. 7.3 · 7.2 · 7.1 · 7.0 · 6.5

इस पेज पर, Android के लिए बिल्ड की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने की जानकारी दी गई है ऐप्लिकेशन को खास तौर पर डाउनलोड किया जा सकता है. Baज़ल के साथ, बिल्ड की परफ़ॉर्मेंस को बेहतर बनाने के बारे में जानने के लिए, देखें परफ़ॉर्मेंस ऑप्टिमाइज़ करना.

झंडे bazelrc कॉन्फ़िगरेशन सिंटैक्स, इसलिए उन्हें सीधे किसी bazelrc फ़ाइल में चिपकाया जा सकता है और --config=<configuration_name>.

परफ़ॉर्मेंस की प्रोफ़ाइल बनाना

Bazz, डिफ़ॉल्ट रूप से बेज़ल के आउटपुट बेस में command.profile.gz. इसके लिए JSON प्रोफ़ाइल दस्तावेज़ देखें उस प्रोफ़ाइल को कैसे पढ़ें और उससे कैसे इंटरैक्ट करें.

Android बिल्ड ऐक्शन के लिए, लगातार काम करने वाले वर्कर्स.

Android बिल्ड ऐक्शन के सबसेट में, पर्सिस्टेंट वर्कर के लिए सहायता मिलती है.

ये कार्रवाइयां' याद रखने के तरीके:

  • DexBuilder
  • जावैक
  • Desugar
  • AaptPackage
  • AndroidResourceParser
  • AndroidResourceValidator
  • AndroidResourceCompiler
  • RClassGenerator
  • AndroidResourceLink
  • AndroidAapt2
  • AndroidAssetMerger
  • AndroidResourceMerger
  • AndroidCompiledResourceMerger

कर्मचारियों को अनुमति देने से, वे जेवीएम पर बचत कर सकते हैं और बेहतर परफ़ॉर्म कर सकते हैं इनमें से प्रत्येक टूल को लागू करने से शुरू होने वाली स्टार्टअप लागत आती है, लेकिन मेमोरी के इस्तेमाल को प्रोसेस करता है.

कर्मचारियों को इन कार्रवाइयों के लिए सक्षम करने के लिए, इन फ़्लैग को इसके साथ लागू करें --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 होती है. हमने हर ऐक्शन के इंस्टेंस की संख्या को 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 फ़्लैग का इस्तेमाल करें या android_binary और android_local_test पर aapt_version पर aapt2 सेट करें.

एसएसडी ऑप्टिमाइज़ेशन

--experimental_multi_threaded_digest फ़्लैग की मदद से, डाइजेस्ट को ऑप्टिमाइज़ किया जा सकता है एसएसडी पर कंप्यूटेशन (कंप्यूटेशन) करता है.