जैसा कि जॉन स्कीट ने लिखा है, वहां दो रणनीतियों हैं: उपकरण और नमूनाकरण।
इंस्ट्रुमेंटेशन मैन्युअल रूप से और स्वचालित रूप से भी किया जाता है। मैन्युअल मामले में: डेवलपर मैन्युअल रूप से रुचि के कोड के क्षेत्र के प्रारंभ/अंत को ट्रैक करने के लिए कोड डालता है। उदाहरण के लिए एक सरल "स्टार्टटाइमर" और "एंडटाइमर"। कुछ प्रोफाइलर उपकरण स्वचालित रूप से यह भी कर सकते हैं - इसके लिए प्रोफाइलर को कोड का स्थिर विश्लेषण करने की आवश्यकता होगी यानी यह कोड को पार करता है और किसी विशेष विधि के प्रारंभ/अंत जैसे महत्वपूर्ण चेकपॉइंट की पहचान करता है। यह उन भाषाओं के साथ सबसे आसान है जो प्रतिबिंब का समर्थन करते हैं (उदा। किसी भी .NET भाषा)। 'प्रतिबिंब' का उपयोग करके प्रोफाइलर पूरे स्रोत कोड पेड़ (कॉल ग्राफ़ के साथ) को पुनर्निर्माण करने में सक्षम है।
नमूना प्रोफाइलर द्वारा किया जाता है और यह बाइनरी कोड में दिखता है। प्रोफाइलर प्रोफाइलिंग के उद्देश्य के लिए हुक या जाल विंडोज इवेंट/संदेश जैसी तकनीकों को भी कर सकता है।
दोनों इंस्ट्रुमेंटेशन और नमूनाकरण विधियों के अपने ओवरहेड हैं। ओवरहेड की मात्रा निर्भर करता है - उदा। यदि नमूना आवृत्ति उच्च मानों पर सेट की जाती है, तो प्रोफाइलिंग स्वयं रिपोर्ट किए जाने वाले प्रदर्शन में महत्वपूर्ण योगदान दे सकती है।
इंस्ट्रुमेंटेशन बनाम नमूनाकरण: ऐसा नहीं है कि दूसरे दृष्टिकोण से बेहतर है। दोनों की जगह है।
सबसे अच्छा तरीका एक नमूना आधारित प्रोफाइलर से शुरू करना और पूरे सिस्टम स्तर को देखना है। यह नमूना चलाता है और सिस्टम व्यापक संसाधन उपयोग को देखता है: मेमोरी, हार्ड डिस्क, नेटवर्क, सीपीयू।
उपरोक्त से संसाधनों को पहचानने की पहचान की जाती है।
उपर्युक्त जानकारी के साथ, अब आप अपराधी को पिन-पॉइंट करने के लिए अपने कोड में वाद्ययंत्र जोड़ सकते हैं। उदाहरण के लिए यदि स्मृति सबसे अधिक उपयोग किया जाने वाला संसाधन है तो यह आपकी स्मृति आवंटन से संबंधित कोड को मापने में मदद करेगा। ध्यान दें कि उपकरण के साथ आप वास्तव में अपने कोड के किसी विशेष क्षेत्र पर ध्यान केंद्रित कर रहे हैं।
"प्रबंधित कोड" से आपका क्या मतलब है? – tunnuz
http://en.wikipedia.org/wiki/Managed_code – aku