विज़ुअल स्टूडियो में, प्रोफ़ाइल में बताए गए तरीके से ऑप्टिमाइज़ करने की सुविधा को कॉन्फ़िगर करना

AGDE में प्रोफ़ाइल से जुड़े गाइड के साथ ऑप्टिमाइज़ेशन की सुविधा शुरू की गई वर्शन 22.2.71.

पीजीओ की सेटिंग का पता लगाना

Solution Explorer से अपने प्रोजेक्ट की सेटिंग खोलें.

मौजूदा रिपोर्ट के लिए, Visual Studio सलूशन एक्सप्लोरर प्रॉपर्टी मेन्यू
प्रोजेक्ट.

पहली इमेज: Visual Studio सलूशन एक्सप्लोरर विंडो.

पक्का करें कि आपका प्लैटफ़ॉर्म किसी Android कॉन्फ़िगरेशन पर सेट हो (उदाहरण के लिए, Android-arm64-v8a).

बाईं ओर दिए गए पैनल में, कॉन्फ़िगरेशन गुण > चुनें सामान्य. इसे खोजें प्रॉपर्टी ग्रुप को PGO कहते हैं.

प्रोजेक्ट प्रॉपर्टी का डायलॉग बॉक्स, जिसमें सामान्य प्रॉपर्टी दिख रही हैं और पीजीओ सेटिंग
हाइलाइट की गई

इमेज 2: प्रोजेक्ट की प्रॉपर्टी का डायलॉग.

प्रोजेक्ट में पीजीओ के इंस्ट्रुमेंट वाले बिल्ड चालू करें

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

प्रॉपर्टी पेज डायलॉग में, कॉन्फ़िगरेशन मैनेजर... पर क्लिक करें.

प्रॉपर्टी पेज डायलॉग के ऊपरी हिस्से में, ऐक्टिव सलूशन दिख रहा है
कॉन्फ़िगरेशन और प्लैटफ़ॉर्म ड्रॉप-डाउन के साथ-साथ कॉन्फ़िगरेशन मैनेजर
बटन

तीसरी इमेज: कॉन्फ़िगरेशन मैनेजर डायलॉग.

कॉन्फ़िगरेशन मैनेजर डायलॉग में, चालू समाधान चुनें कॉन्फ़िगरेशन ड्रॉप-डाउन पर क्लिक करें और <New...> चुनें.

ऐक्टिव सलूशन कॉन्फ़िगरेशन वाला कॉन्फ़िगरेशन मैनेजर डायलॉग
ड्रॉप-डाउन खोला गया और &#39;नया विकल्प&#39;
हाइलाइट किया जाएगा.

चौथी इमेज: नया बिल्ड कॉन्फ़िगरेशन बनाना.

... और नया PGO-इंस्ट्रुमेंट वाला कॉन्फ़िगरेशन बनाएं.

नया सलूशन कॉन्फ़िगरेशन डायलॉग बॉक्स, जो नया पीजीओ-इंस्ट्रुमेंट्ड बिल्ड बना रहा है
मौजूदा रिलीज़ बिल्ड के आधार पर कॉन्फ़िगरेशन
कॉन्फ़िगरेशन

पांचवी इमेज: नया समाधान कॉन्फ़िगरेशन डायलॉग.

प्रोफ़ाइल बनाने के लिए, पीजीओ के इंस्ट्रुमेंट वाले मोड में इमारत बनाने की सुविधा चालू करना अपने गेम के लिए, विकल्पों की सूची में से इंस्ट्रुमेंटेड चुनें प्रोफ़ाइल गाइड के साथ ऑप्टिमाइज़ेशन मोड की सेटिंग.

प्रोजेक्ट के प्रॉपर्टी वाला डायलॉग बॉक्स, पीजीओ के साथ सामान्य सेटिंग में खोला जाता है
सेटिंग दिखाई गई हैं और प्रोफ़ाइल का निर्देशित ऑप्टिमाइज़ेशन मोड
इंस्ट्रुमेंट किया गया.

छठी इमेज: प्रोजेक्ट प्रॉपर्टी डायलॉग, जिसमें पीजीओ सेटिंग को हाइलाइट किया गया है.

गाइडेड ऑप्टिमाइज़ेशन प्रोफ़ाइल की सेटिंग के लिए, अपने Android डिवाइस पर रॉ आउटपुट प्रोफ़ाइल डेटा फ़ाइल लिखें. आम तौर पर, यह वैल्यू /data/data/<package name>/cache/ की तरह होनी चाहिए – यहां <package name> आपके पैकेज का पूरा नाम होता है APK – उदाहरण के लिए, com.google.sample.tunnel.

यह कैसे काम करता है, इस बारे में ज़्यादा जानकारी के लिए, Clang दस्तावेज़ में दिया गया है.

अपने डिवाइस पर पीजीओ-इंस्ट्रुमेंट की मदद से बनाई गई प्रोफ़ाइल का डेटा लिखना

आम तौर पर, पीजीओ का डेटा डिवाइस पर तब लिखा जाता है, जब पीजीओ इंस्ट्रुमेंटेशन सिस्टम एक प्रोसेस से बाहर निकलती है. Android पर, ऐप्लिकेशन बंद नहीं होते – वे हमेशा बंद रहते हैं. यह इसका मतलब है, डिफ़ॉल्ट "डिस्क पर लिखें" काम करने की क्षमता कभी भी ट्रिगर न हो, इसलिए आपके पास पीजीओ डेटा को मैन्युअल तरीके से लिखने की सुविधा देता है.

आपके ऐप्लिकेशन में __llvm_profile_write_file को साफ़ तौर पर कॉल किया जाना चाहिए, ताकि प्रोफ़ाइल का डेटा. यह सिंबल सिर्फ़ तब उपलब्ध होता है, जब किसी पीजीओ से जुड़े डिवाइस को बनाया जाता है बिल्ड. इसे आसान बनाने के लिए, हमारा सुझाव है कि जब आप __llvm_profile_write_file का एलान करते हुए फ़ॉरवर्ड करें.

#ifdef PGO_INSTRUMENT
extern "C" int __llvm_profile_write_file(void);
#else
extern "C" int __llvm_profile_write_file(void) { return 0; }
#endif

इस फ़ंक्शन को कॉल करने से, प्रोफ़ाइल का डेटा आपके बताए गए फ़ोल्डर में लिख दिया जाता है .

प्रोफ़ाइल चलाई जा रही है

प्रोफ़ाइल जनरेट करने के लिए, PGO-इंस्ट्रूमेंटेशन के साथ बनाए गए अपने APK को टारगेट डिवाइस. कोड का उपयोग करके अपनी संतुष्टि के बाद, और ने __llvm_profile_write_file फ़ंक्शन को कॉल किया है, तो आपका ऐप्लिकेशन प्रोफ़ाइल के स्टोरेज में डेटा सेव करें.

इस स्थिति में, कंपाइलर के इस्तेमाल करने के लिए प्रोफ़ाइल को डिवाइस से वापस कॉपी करें.

कंपाइलर के इस्तेमाल के लिए प्रोफ़ाइल डेटा तैयार करना

आइसोलेशन में इस्तेमाल करने पर, कमांड-लाइन टूल llvm-profdata, जो एक हिस्से के तौर पर भेजा जाता है Clang/LLVM को Android NDK में इस्तेमाल किया जाता है, ताकि प्रोफ़ाइल की डेटा फ़ाइलों को इस्तेमाल के लिए तैयार किया जा सके बिल्ड के प्रोफ़ाइल-गाइडेड ऑप्टिमाइज़ेशन के दौरान कंपाइलर की ओर से.

एजीडीई किसी भी प्रोफ़ाइल को मर्ज करके, आपके लिए यह चरण अपने-आप पूरा करता है डेटा फ़ाइलें जोड़ी हैं और उनका इस्तेमाल प्रोजेक्ट प्रॉपर्टी पेजों में, प्रोफ़ाइल के हिसाब से ऑप्टिमाइज़ेशन मोड सेटिंग है ऑप्टिमाइज़ किया गया पर सेट है.

प्रोफ़ाइल गाइड के साथ ऑप्टिमाइज़ेशन की सुविधा चालू करके, अपना प्रोजेक्ट बनाना

अब जब आपने अपनी प्रोफ़ाइल कैप्चर कर ली है और उसे अपने प्रोजेक्ट में जोड़ लिया है, तो कंपाइलर इस डेटा का इस्तेमाल, आपके बिल्ड के ऑप्टिमाइज़ेशन को बेहतर बनाने के लिए कर सकता है.

अपने PGO-Optimized Build के लिए नया प्रोजेक्ट कॉन्फ़िगरेशन बनाएं, ताकि आप सिर्फ़ ज़रूरत पड़ने पर इस मोड में बिल्ड करें.

नया समाधान कॉन्फ़िगरेशन डायलॉग बॉक्स, जिसके आधार पर बिल्ड कॉन्फ़िगरेशन बनता है
को रिलीज़ किया गया था, लेकिन इस बार PGO-Optimized के साथ नए बिल्ड के रूप में
कॉन्फ़िगरेशन का नाम.

सातवीं इमेज: PGO के लिए ऑप्टिमाइज़ किए गए बिल्ड का नया कॉन्फ़िगरेशन बनाना.

प्रोजेक्ट प्रॉपर्टी में, प्रोफ़ाइल के हिसाब से ऑप्टिमाइज़ेशन मोड सेटिंग सेट करें ऑप्टिमाइज़ किए गए पेजों पर.

प्रोजेक्ट के प्रॉपर्टी वाला डायलॉग बॉक्स, पीजीओ के साथ सामान्य सेटिंग में खोला जाता है
सेटिंग दिखाई गई हैं और प्रोफ़ाइल का निर्देशित ऑप्टिमाइज़ेशन मोड
बैटरी के इस्तेमाल को ऑप्टिमाइज़ करें

आठवीं इमेज: पीजीओ ऑप्टिमाइज़ेशन मोड को ऑप्टिमाइज़ पर सेट करना.

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

ADB का इस्तेमाल करके, डिवाइस से प्रोफ़ाइल की डेटा फ़ाइलें अपने प्रोजेक्ट में कॉपी की जा सकती हैं. से संपर्क करने के लिए, Android डिवाइस एक्सप्लोरर का इस्तेमाल करें.

AGDE के बाहर प्रोफ़ाइल से गाइडेड ऑप्टिमाइज़ेशन का इस्तेमाल करना

अगर ऐसे बिल्ड सिस्टम का इस्तेमाल किया जा रहा है जो AGDE के साथ काम नहीं करता, तो आपको अपने बिल्ड में सीधे बदलाव कर सकते हैं. क्लैंग की दस्तावेज़ ज़रूरी स्विच कवर करता है – -fprofile-generate, और -fprofile-use.

अगर गेम के लिए मिडलवेयर इंजन का इस्तेमाल किया जा रहा है, तो दस्तावेज़ देखें ताकि पीजीओ (अगर यह सुविधा काम करती है) को चालू करने का तरीका देख सके.