यह निर्भर करता है कि आप पारंपरिक कैसे बनना चाहते हैं।
gprof
उन दोनों चीजों को आपने बताया है। Here are some comments on that.
विचार का एक स्कूल है जो कहता है कि प्रोफाइलिंग मापने के बारे में है। मापने क्या? खैर, कुछ भी - बस मापने। इसके साथ-साथ यह विचार भी मिलता है कि आप जो प्राप्त करना चाहते हैं वह एक "बड़ी तस्वीर" है जो हो रहा है। यह विद्यालय अधिकतर "धीमे कार्यों" को खोजने की कोशिश कर रहा है, स्पष्ट रूप से परिभाषित किए बिना कि इसका अर्थ क्या है, और आपको ऑप्टिमाइज़ करने के लिए वहां देखने के लिए कह रहा है।
एक और स्कूल कहता है कि आप वास्तव में डिबगिंग कर रहे हैं। आप निश्चित रूप से किसी निश्चित प्रकार की बग का पता लगाना चाहते हैं - जो प्रोग्राम को गलत नहीं बनाते हैं, बल्कि वे बहुत अधिक समय लेते हैं। ये बड़ी तस्वीर चीजें नहीं हैं। वे कोड में बहुत सटीक बिंदु हैं जहां कुछ ऐसा हो रहा है जो आवश्यकतानुसार बहुत अधिक समय लेता है। बिल्कुल कितना महत्वपूर्ण नहीं है। यह महत्वपूर्ण है कि यह स्थित है ताकि इसे ठीक किया जा सके। इस दृष्टिकोण में, प्रोफाइलिंग ओवरहेड अप्रासंगिक है, और इसलिए माप की सटीकता भी है। यह देखने के लिए कितना माप है कि कितना समय बचाया गया था।
एक प्रोफेसर, जो मुझे लगता है, सफलतापूर्वक दोनों शिविरों को फैलाता है, Zoom है, क्योंकि यह कॉल स्टैक, दीवार घड़ी के समय, और प्रस्तुत करता है, लाइन/निर्देश स्तर पर, स्टैक पर समय का प्रतिशत। कुछ अन्य प्रोफाइलर भी ऐसा करते हैं, लेकिन अधिकांश नहीं करते हैं।
मैं दूसरे स्कूल में हूं, और here's an example जो आप इसके साथ पूरा कर सकते हैं।
Here's a more brief discussion of the issues.
स्रोत
2011-01-12 20:53:33
बोलने क्या एक कार्यक्रम पीसी नमूने के द्वारा कर रही है केवल कुछ सेकंड नमूने के द्वारा समय बताने की कोशिश कर रहा तरह है। वास्तविक सॉफ्टवेयर के लिए लागू, आमतौर पर यह कहता है कि प्रोग्राम "कहीं" कर्नेल में अर्थहीन है। ढेर के नमूने अधिक उपयोगी होते हैं क्योंकि वे बताते हैं कि * क्यों * यह वहां है। इंस्ट्रूमेंटिंग घड़ी पर समय बताने की कोशिश करने की तरह है जहां कई अंक मिटा दिए गए हैं, जैसे कि यह 2:00 से 7:00 तक कूदता है। ऐसा इसलिए है क्योंकि यह समय काम करता है लेकिन कोड की रेखा नहीं। एक बड़ा काम मारा और आप अनुमान लगाने के लिए वापस आ गए हैं। –