सुझाव/राय के आधार पर अपने-आप ऑप्टिमाइज़ होना (12 या उससे ज़्यादा वर्शन)

Android 12 में लॉन्च किया गया Android बिल्ड सिस्टम, अपने-आप सुझाव देने वाले ऑप्टिमाइज़ेशन (AutoFDO) का इस्तेमाल करके, उन नेटिव Android मॉड्यूल को ऑप्टिमाइज़ करने की सुविधा देता है जिनमें ब्लूप्रिंट बिल्ड नियम होते हैं. AutoFDO, सैंपलिंग पर आधारित ऑप्टिमाइज़ेशन तकनीक है. AutoFDO, सिस्टम के रनटाइम व्यवहार को कैप्चर करता है बाइनरी की मदद से, कंपाइलर की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने में मदद मिलती है. साथ ही, बाइनरी साइज़ को कम करना. Android X86, X86_64, ARM, और ARM64 डिवाइस. हालांकि, प्रोफ़ाइलों का इस्तेमाल सभी आर्किटेक्चर में किया जा सकता है.

AutoFDO, इंस्ट्रुमेंटेशन पर आधारित प्रोफ़ाइल से मिले गाइडेड ऑप्टिमाइज़ेशन का सक्सेसर है (पीजीओ).

इंस्ट्रूमेंटेशन पर आधारित अन्य प्रोफ़ाइलों की तुलना में, AutoFDO के ये अतिरिक्त फ़ायदे हैं:

  • बिना रुकावट के डेटा कलेक्शन: AutoFDO प्रोफ़ाइलों को इनसे इकट्ठा किया जा सकता है डेवलपमेंट या उपयोगकर्ता डिवाइसों के लिए बनाया गया हो.

  • असल ज़िंदगी में इस्तेमाल का उदाहरण: AutoFDO, असल ज़िंदगी में इस्तेमाल के व्यवहार को दिखाता है. ऐसा यह मानकर किया जाता है कि प्रोफ़ाइलें, उपयोगकर्ता के डिवाइसों से इकट्ठा की जाती हैं. वहीं, इंस्ट्रूमेंटेशन PGO, सिर्फ़ सिंथेटिक कलेक्शन वर्कलोड को दिखाता है. आम तौर पर, ऐसा कलेक्शन वर्कलोड बनाना आसान नहीं होता जो असल दुनिया में इस्तेमाल किए जाने वाले डेटा से पूरी तरह मैच करता हो.

AOSP, परफ़ॉर्मेंस पर असर डालने वाले ज़्यादातर प्रोजेक्ट के लिए, AutoFDO प्रोफ़ाइलों के साथ शिप होता है. ये प्रोफ़ाइलें, फ़ोन और टैबलेट डिवाइसों से इकट्ठा की गई हैं. ये, इन डिवाइसों के सामान्य इस्तेमाल के पैटर्न को दिखाती हैं. प्रोफ़ाइलें toolchain/pgo-profiles/sampling में मौजूद होती हैं. AOSP पर AFDO डिफ़ॉल्ट रूप से चालू होता है.

ब्लूप्रिंट बनाने के नियम के लिए, अपने-आप फ़ाइलें मिटाने की सुविधा चालू करना

ब्लूप्रिंट के बिल्ड नियमों के लिए, अपने-आप फ़ाइलें मिटाने की सुविधा चालू करने के लिए, शेयर की गई लाइब्रेरी या बाइनरी नियम में afdo: true जोड़ें.

प्रोफ़ाइलें इकट्ठा करें

AOSP के साथ पहले से बंडल की गई प्रोफ़ाइल, इन खास स्थितियों में काम नहीं करती:

  • ऑटो एफ़डीओ प्रोजेक्ट को शामिल करना
  • स्थानीय तौर पर बदले गए कोड की मौजूदगी
  • आपके सिस्टम से जुड़े, इस्तेमाल के यूनीक पैटर्न

अगर आपके ऐप्लिकेशन में इनमें से कोई एक स्थिति है, तो आपको सीधे तौर पर डेवलपमेंट या उपयोगकर्ता के डिवाइसों से प्रोफ़ाइलें इकट्ठा करनी होंगी.

ARM डिवाइसों को ऑटोएफ़डीओ प्रोफ़ाइलें इकट्ठा करने के लिए तैयार करने का तरीका जानने के लिए, ऑटोएफ़डीओ के लिए ईटीएम डेटा इकट्ठा करना लेख पढ़ें.

बैकग्राउंड में अपने-आप प्रोफ़ाइल इकट्ठा होने की सुविधा चालू करने का तरीका जानने के लिए, प्रोसेस और अपलोड करने के बारे में है. Profcollect पर क्लिक करें.

AutoFDO प्रोफ़ाइलों का विश्लेषण करना

Android, स्टैंडर्ड LLVM AutoFDO प्रोफ़ाइलों का इस्तेमाल करता है. AFDO प्रोफ़ाइल पढ़ी जा सकती हैं एलएलवीएम के llvm-profdata टूल का इस्तेमाल करके. afdo_summary.sh स्क्रिप्ट (toolchain/pgo-profiles/scripts/afdo_summary.sh), AutoFDO प्रोफ़ाइल के हिसाब से, अक्सर इस्तेमाल होने वाले फ़ंक्शन अपने-आप जनरेट करती है.