पीजीओ माप करने के दौरान आप अपने कंप्यूटर पर क्या करते हैं, इसका अनुकूलन के परिणाम पर अब तक कोई प्रभाव नहीं पड़ता है। किसी दिए गए डेटा सेट के लिए कोड में गर्म पथ खोजने के लिए माप का उपयोग करने के लिए पीजीओ क्या करता है और इस डेटा का उपयोग इस डेटा सेट के लिए यथासंभव तेज़ी से प्रोग्राम बनाने के लिए करें और कौन सा पथ गर्म है और जो अन्य प्रोग्रामों से स्वतंत्र नहीं है कंप्यूटर पर चल रहा है।
चीजों को थोड़ा सा समझाने के लिए, कोड को अनुकूलित करते समय व्यापार बंद होते हैं। कोड के कुछ हिस्सों में सुधार अधिक होगा और दूसरों के निचले स्तर पर निर्भर करता है कि किस कोड ट्रांसफॉर्म का उपयोग किया जाता है और जहां वे लागू होते हैं। एक बेहतर अंतिम परिणाम प्राप्त करने के लिए आप कोड में उच्च सुधार चाहते हैं जिसे बहुत अधिक निष्पादित किया जाता है (कंपाइलर लिंगो में गर्म कोड) जबकि आप कोड में छोटे सुधारों के साथ रह सकते हैं जो कम बार (ठंडा कोड) निष्पादित होता है। आम तौर पर कार्यक्रम के इन गर्म हिस्सों की पहचान करने के लिए हेरिस्टिक्स का एक सेट उपयोग किया जाता है और अनुकूलन को इस तरह से लागू करता है जो इन हिस्सों को जितनी जल्दी हो सके बनाता है। इस दृष्टिकोण के साथ समस्या यह है कि हेरिस्टिक्स इस बात के बारे में कुछ भी नहीं जानता कि इस कार्यक्रम का अभ्यास कैसे किया जाएगा और ठंड के रूप में गर्म कोड को गलत तरीके से पहचान सकता है।
प्रोफ़ाइल निर्देशित अनुकूलन (पीजीओ) वास्तविक निष्पादन से डेटा का उपयोग कर कोड के गर्म हिस्सों का पता लगाने के लिए कंपाइलर की सहायता करने का एक तरीका है। पहले चरण के रूप में आप प्रोग्राम के एक वाद्य यंत्र का निर्माण करने के लिए संकलक को बताते हैं कि अभ्यास में कोड को कैसे निष्पादित किया जाता है, आम तौर पर लूप में पुनरावृत्तियों की संख्या की गणना करने के लिए काउंटर जोड़कर और यदि शाखाओं को शाखाओं में चुना जाता है। दूसरा चरण वास्तविक डेटा पर वाद्य प्रोग्राम चलाने के लिए है। निष्पादन के अंत में कार्यक्रम सभी अतिरिक्त काउंटरों के मूल्यों को आउटपुट करेगा और कोड के साथ काउंटर मिलान करके यह देखना संभव है कि कार्यक्रम के कौन से हिस्से गर्म हैं (उच्च संख्याएं) और जो ठंड (कम संख्याएं) हैं। अंत में कार्यक्रम संकलित किया गया है लेकिन इस बार कार्यक्रम प्रोफाइल के साथ उभरा। इसका तात्पर्य यह है कि संकलक को अब अनुमान लगाने की आवश्यकता नहीं है कि कौन से हिस्सों को तेज़ होना चाहिए और जो धीमा हो सकता है, यह प्रोफ़ाइल में इसे देख सकता है।
डूम ठीक है, बहुत सी CPU नहीं खाएगा :) –
संदेह में, क्षमा से बेहतर सुरक्षित: अपने अन्य कंप्यूटर पर खेलें –
एक जाना और पता लगाएं। ;-) –