2011-09-13 9 views
6

मैं कुछ सी ++ कोड को प्रोफाइल करने के लिए Very Sleepy का उपयोग कर रहा हूं, और मुझे लगता है कि स्रोत दृश्य में, जहां यह लाल रेखा-दर-नींबू समय-व्यतीत माप दिखाता है, वहां हमेशा उन रेखाओं पर माप होता है जिनके पास केवल विधि का खुलासा होता है या बंद घुंघराले ब्रेस, कुछ मामलों में यह समारोह में कोड की अन्य पंक्तियों की तुलना में काफी अधिक थे।बहुत नींद प्रोफाइलर में घुंघराले ब्रेसिज़ के पास प्रस्तुत किए गए समय माप क्या करते हैं?

मेरी प्रारंभिक धारणा यह शुरुआती घुंघराले ब्रेस के लिए ढेर में विधि पैरामीटर को धक्का देने में बिताए गए समय को दिखाती है, और समापन घुंघराले ब्रेस के लिए ढेर को बिताते समय बिताती है। क्या ये सच है?

+0

क्या दिनचर्या में स्थानीय चर होते हैं जिन्हें आवंटित और नष्ट कर दिया जाता है, जैसे स्ट्रिंग्स? यह महत्वपूर्ण छुपे हुए नए और विनाशकारी कारण बन सकता है, जबकि उन घुंघराले ब्रेसिज़ स्टैक पर लाइनें होने पर लाइनें हो रही हैं। –

+0

@ माइकडुनलेवी मैं इसे इस विधि में देखता हूं जिसमें केवल आदिम स्थानीय चर भी हैं। –

+0

ठीक है, मैं उन लोगों में से हूं जो [इस विधि] का उपयोग करते हैं (http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024# 378024), और इसमें कोई संदेह नहीं है। यह आपको निर्देश के नीचे बताता है, वास्तव में समय क्या ले रहा है। (मुझे बहुत नींद का स्रोत कोड मिला है, लेकिन इसे देखकर, यह कहना मुश्किल है कि यह वास्तव में क्या कर रहा है।) –

उत्तर

4

मुझे ट्विटर पर बहुत नींद के रखरखाव रिचर्ड मिटन (@grumpydev) से इसका जवाब मिला: "संभवतः फ़ंक्शन को अनुकूलित किया गया है, इसलिए लाइन नंबर को कोड के ठीक से मेल नहीं किया गया है यानी समारोह के दौरान फैल जाने की बजाए, हर समय शुरुआत में लुप्त हो जाता है। "

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