Android 12-এ প্রথমবার চালু করা Android বিল্ড সিস্টেম, অটোমেটিক ফিডব্যাক-ডিরেক্টেড অপ্টিমাইজেশন (AutoFDO) ব্যবহার করে ব্লুপ্রিন্ট বিল্ড রুল আছে এমন নেটিভ Android মডিউল অপ্টিমাইজ করার ক্ষেত্রে সহায়তা করে। AutoFDO হল স্যাম্পেল-ভিত্তিক অপ্টিমাইজেশন টেকনিক। AutoFDO সিস্টেম বাইনারির রানটাইম আচরণ ক্যাপচার করে, এর ফলে কম্পাইলার আরও ভালো পারফর্ম্যান্স অপ্টিমাইজেশন করতে পারে এবং একই সাথে বাইনারির সাইজও কমে যায়। Android X86, X86_64, ARM এবং ARM64 ডিভাইস থেকে প্রোফাইল সংগ্রহ করার সুবিধা দেয়, যদিও প্রোফাইলগুলি বিভিন্ন আর্কিটেকচার জুড়ে ব্যবহার করা যেতে পারে।
AutoFDO হল ইন্সট্রুমেন্টেশন-ভিত্তিক প্রোফাইল-গাইডেড অপ্টিমাইজেশন (PGO)-এর উত্তরসূরি।
অন্যান্য ইন্সট্রুমেন্টেশন ভিত্তিক প্রোফাইলের তুলনায়, AutoFDO-এর এই অতিরিক্ত সুবিধা রয়েছে:
অবাধ ডেটা সংগ্রহ: AutoFDO প্রোফাইলগুলি ডেভেলপমেন্ট বা ব্যবহারকারীর ডিভাইস থেকে সংগ্রহ করা যেতে পারে বিল্ড নিয়মে কোনো পরিবর্তন ছাড়াই।
বাস্তব-জগতে ব্যবহারের উপস্থাপনা: AutoFDO, ব্যবহারকারীর ডিভাইস থেকে প্রোফাইল সংগ্রহ করা হয়েছে ধরে নিয়ে, বাস্তব-জগতে ব্যবহারের আচরণকে উপস্থাপন করে, যেখানে ইন্সট্রুমেন্টেশন PGO শুধুমাত্র সিন্থেটিক সংগ্রহ ওয়ার্কলোডের উপস্থাপনা করে। সাধারণত, বাস্তব জগতের ব্যবহারের সাথে হুবহু ম্যাচ করে এমন একটি সংগ্রহ ওয়ার্কলোড তৈরি করা সহজ নয়।
AOSP, পারফর্ম্যান্সের দিক থেকে সবচেয়ে গুরুত্বপূর্ণ প্রোজেক্টের জন্য AutoFDO প্রোফাইল সহ শিপ করা হয়। ফোন ও ট্যাবলেট ডিভাইস থেকে
প্রোফাইল সংগ্রহ করা হয়েছে এবং এগুলি
তাদের সাধারণ ব্যবহারের প্যাটার্নের প্রতিনিধিত্ব করে। প্রোফাইলগুলি
toolchain/pgo-profiles/sampling-এর অধীনে রয়েছে। AOSP-তে AFDO ডিফল্ট হিসেবে চালু থাকে।
ব্লুপ্রিন্ট বিল্ড রুলের জন্য AutoFDO চালু করুন
ব্লুপ্রিন্ট বিল্ড নিয়মের জন্য AutoFDO চালু করতে, শেয়ার করা
লাইব্রেরি বা বাইনারি নিয়মে afdo: true যোগ করুন।
প্রোফাইল সংগ্রহ করুন
AOSP-এর সাথে প্রদান করা প্রি-বান্ডেল প্রোফাইল এইসব নির্দিষ্ট পরিস্থিতিতে কাজ করে না:
- অতিরিক্ত AutoFDO প্রোজেক্ট যোগ করা
- স্থানীয়ভাবে পরিবর্তিত কোডের উপস্থিতি
- আপনার সিস্টেমের সাথে সম্পর্কিত অনন্য ব্যবহারের প্যাটার্ন
আপনার যদি এই পরিস্থিতিগুলির মধ্যে একটি থাকে, তাহলে আপনাকে অবশ্যই সরাসরি ডেভেলপমেন্ট বা ব্যবহারকারীর ডিভাইস থেকে প্রোফাইল সংগ্রহ করতে হবে।
AutoFDO প্রোফাইল সংগ্রহ করার জন্য ARM ডিভাইস কীভাবে প্রস্তুত করতে হয় সেই সম্পর্কে বিস্তারিত নির্দেশাবলীর জন্য, AutoFDO-এর জন্য ETM ডেটা সংগ্রহ করুন নিবন্ধটি দেখুন।
AutoFDO প্রোফাইল সংগ্রহ করার জন্য X86 ডিভাইস কীভাবে প্রস্তুত করতে হয় সেই বিষয়ে বিস্তারিত নির্দেশাবলীর জন্য, AutoFDO-এর জন্য LBR ডেটা সংগ্রহ করুন দেখুন।
কীভাবে অটোমেটিক ব্যাকগ্রাউন্ড প্রোফাইল সংগ্রহ, প্রসেস ও আপলোড করার সুবিধা চালু করতে হয় সেই সম্পর্কে তথ্য পেতে, Profcollect দেখুন।
AutoFDO প্রোফাইল বিশ্লেষণ করা
Android, স্ট্যান্ডার্ড LLVM AutoFDO প্রোফাইল ব্যবহার করে। LLVM-এর llvm-profdata টুল ব্যবহার করে
AFDO প্রোফাইল পড়া যেতে পারে। afdo_summary.sh স্ক্রিপ্ট
(toolchain/pgo-profiles/scripts/afdo_summary.sh)
AutoFDO প্রোফাইল
অনুযায়ী সবচেয়ে বেশিবার এক্সিকিউট করা ফাংশন অটোমেটিক জেনারেট করে।