gprof

2010-05-03 7 views
7

के लिए जी ++ में संकलन मैं gprof के साथ प्रोफाइलिंग के लिए अपने प्रोग्राम को संकलित करने के तरीके के बारे में gprof के लिए प्रलेखन को समझ नहीं पा रहा हूं। जी ++ में, -pg विकल्प के अतिरिक्त -g विकल्प (डीबगिंग जानकारी) के साथ संकलित करने की आवश्यकता है या नहीं। प्रत्येक मामले में मुझे अलग-अलग परिणाम मिलते हैं, और मैं देखना चाहता हूं कि मेरे एप्लिकेशन में बाधाएं रिहाई मोड में हैं, डिबग मोड में नहीं, जहां संकलक द्वारा कई अनुकूलन छोड़े गए हैं (उदाहरण के लिए इनलाइनिंग)gprof

+0

http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343 –

+1

'-g' का मतलब यह नहीं है कि ऑप्टिमाइज़ेशन बंद हैं। '-ओ' नियंत्रण अनुकूलन। उदाहरण के लिए आप '-g' और '-O2' दोनों के साथ संकलित कर सकते हैं। –

उत्तर

5

documentation शो कि आप या तो कर सकते हैं, यह ध्यान में रखते हुए कि आपको line by line profiling के लिए आवश्यकता है। तो यदि आप रिलीज शर्तों के तहत प्रोफाइल करना चाहते हैं, और लाइन-बाय-लाइन नहीं कर सकते हैं, तो आप बिना संकलन करने में सक्षम होना चाहिए।

+0

मुझे केवल फ़ंक्शन कॉल में रूचि है, लाइन प्रोफाइलिंग द्वारा लाइन नहीं। -जी विकल्प के बिना, कई कार्यों को बुलाया जा रहा है जो दिखाई नहीं देते हैं। मुझे नहीं लगता कि यह इनलाइनिंग के कारण है, क्योंकि उनमें से कई विधियां बड़ी हैं (कोड की 50+ रेखाएं)। – myahya

+1

@myahya, मुझे लगता है कि यह बहुत अच्छी तरह से इनलाइन हो सकता है। डिफ़ॉल्ट रूप से, जीसीसी 400 आंतरिक जीसीसी निर्देशों तक लंबे समय तक कार्य कर सकता है (मुझे पता है कि ये सीधे कोड की रेखाओं पर मैप नहीं करते हैं); http://bazaar.launchpad.net/~vcs-imports/gcc/trunk/annotate/99780/gcc/params.def#L58 देखें। इसके अलावा, आप किस संकलन झंडे का उपयोग कर रहे हैं? –

संबंधित मुद्दे