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

किसी समस्या की शिकायत करें स्रोत देखें

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

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

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

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

Android बिल्ड कार्रवाइयां करने के लिए स्थायी वर्कर.

Android बिल्ड की कार्रवाइयों के सबसेट को स्थायी कर्मचारी की सुविधा मिलती है.

ये काम नीचे दिए गए हैं:

  • DexBuilder
  • जावाक
  • डेसूगर
  • पैकेज
  • Android संसाधन पार्सर
  • Android संसाधन की पुष्टि करने वाला प्रोग्राम
  • Android संसाधन कंपाइलर
  • Rक्लास जनरेटर
  • Android का लिंक
  • AndroidAapt2
  • Androidएसेट मर्जर
  • Androidसंसाधन मर्जर
  • AndroidCompedResourceMerger

वर्कर को चालू करने से जेवीएम चालू होने का खर्च बचता है और ये हर टूल का इस्तेमाल करना आसान हो जाता है. हालांकि, इस दौरान सिस्टम की मेमोरी का इस्तेमाल करने से खर्चा कम होता है.

इन कार्रवाइयों के लिए वर्कर को चालू करने के लिए, कमांड लाइन पर --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 तक सीमित करके, बिल्ड की बेहतर परफ़ॉर्मेंस को मेज़र किया है. हालांकि, सिस्टम के आधार पर और बेज़ल में जो प्रोजेक्ट चल रहा है उसके हिसाब से, स्थिति में अंतर हो सकता है.

किसी कार्रवाई के उदाहरणों की संख्या को सीमित करने के लिए, इन फ़्लैग को लागू करें:

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 फ़्लैग का इस्तेमाल करें या aapt_version और android_binary को android_local_test पर सेट करें.

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

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