অ্যান্ড্রয়েড বিল্ড পারফরম্যান্স

এই পৃষ্ঠায় বিশেষভাবে Android অ্যাপের জন্য বিল্ড পারফরম্যান্স অপ্টিমাইজ করার তথ্য রয়েছে। ব্যাজেলের সাথে সাধারণ বিল্ড পারফরম্যান্স অপ্টিমাইজেশনের জন্য, অপ্টিমাইজিং পারফরম্যান্স দেখুন।

পতাকাগুলি bazelrc কনফিগারেশন সিনট্যাক্সে রয়েছে , তাই সেগুলিকে সরাসরি একটি bazelrc ফাইলে আটকানো যেতে পারে এবং কমান্ড লাইনে --config=<configuration_name> দিয়ে আহ্বান করা যেতে পারে।

প্রোফাইলিং কর্মক্ষমতা

Bazel Bazel এর আউটপুট বেসে command.profile.gz নামক একটি ফাইলে ডিফল্টরূপে একটি JSON ট্রেস প্রোফাইল লেখে। কিভাবে প্রোফাইল পড়তে এবং ইন্টারঅ্যাক্ট করতে হয় তার জন্য JSON প্রোফাইল ডকুমেন্টেশন দেখুন।

অ্যান্ড্রয়েড বিল্ড অ্যাকশনের জন্য অবিরাম কর্মীরা

অ্যান্ড্রয়েড বিল্ড অ্যাকশনের একটি উপসেট অবিরাম কর্মীদের জন্য সমর্থন করে।

এই কর্মের স্মৃতিবিদ্যা হল:

  • ডেক্সবিল্ডার
  • জাভাক
  • ডেসুগার
  • AaptPackage
  • অ্যান্ড্রয়েড রিসোর্স পার্সার
  • অ্যান্ড্রয়েড রিসোর্স ভ্যালিডেটর
  • অ্যান্ড্রয়েড রিসোর্স কম্পাইলার
  • আরসিক্লাস জেনারেটর
  • AndroidResourceLink
  • AndroidAapt2
  • AndroidAssetMerger
  • অ্যান্ড্রয়েড রিসোর্স মার্জার
  • 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 । আমরা প্রতিটি অ্যাকশনের জন্য দৃষ্টান্তের সংখ্যা 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_testaapt2aapt_version সেট করুন।

এসএসডি অপ্টিমাইজেশান

--experimental_multi_threaded_digest পতাকা SSD-তে ডাইজেস্ট গণনা অপ্টিমাইজ করার জন্য উপযোগী।