कैसे देखें कि आपके कोड के कौन से भाग सबसे अधिक बार चलते हैं?


11

मैं यह देखना चाहूंगा कि स्रोत कोड की हजारों लाइनों में कौन सा कोड सबसे अधिक बार चलाया जाता है और सबसे लंबा लगता है। इसका उद्देश्य अनुकूलन के लिए होगा।

यह देखने में सक्षम होना कि कोड के किन हिस्सों को सबसे अधिक बार चलाया जाता है, अनुकूलन के लिए महत्वपूर्ण है, क्योंकि वे भाग वे हैं जहाँ मुझे गति करने के लिए ध्यान केंद्रित करना चाहिए। उसी समय, कुछ कोड बहुत बार चलाए जाते हैं, लेकिन लगभग कोई समय नहीं लगता है, इसलिए यह भी महत्वपूर्ण है कि यह देखने में सक्षम हो कि कौन सा कोड सबसे लंबा समय लेता है।

मुझे लगता है कि दोनों दुनिया के सर्वश्रेष्ठ एक ऐसा कार्यक्रम होगा जो कोड का एक टुकड़ा लेता है, जिसमें सभी बार इसे शामिल किया गया था (जिसमें आपके कोड को सबसे समग्र रूप से धीमा कर दिया गया था)। क्या इसके लिए एक तरह का उपकरण है?


क्या आपके पास ऑपरेटिंग सिस्टम या प्रोग्रामिंग भाषा के लिए प्राथमिकता है?
मावग का कहना है कि मोनिका

जवाबों:


15

आप जो देख रहे हैं वह रूपरेखा है :

सॉफ्टवेयर इंजीनियरिंग में, प्रोफाइलिंग ("प्रोग्राम प्रोफाइलिंग", "सॉफ्टवेयर प्रोफाइलिंग") एक गतिशील प्रोग्राम विश्लेषण का एक रूप है, जो उदाहरण के लिए, किसी प्रोग्राम के स्पेस (मेमोरी) या समय की जटिलता, विशेष निर्देशों का उपयोग, या आवृत्ति और फ़ंक्शन कॉल की अवधि। प्रोफाइलिंग जानकारी का सबसे आम उपयोग कार्यक्रम अनुकूलन में सहायता करना है।

ऐसे कई अनुप्रयोग हैं। कभी-कभी, ये आईडीई में ही निर्मित होते हैं। Netbeans ide एक ऐसा उपकरण है जिसमें एक प्रोफाइलर बनाया गया है। यहाँ छवि विवरण दर्ज करें

इस तरह का एक अन्य उपकरण दृश्य वीएम है

यहाँ छवि विवरण दर्ज करें

प्रोफाइलर विभिन्न तरीकों से काम कर सकते हैं - और एक को मतभेदों के बारे में पता होना चाहिए। चल रहे धागों का एक स्नैपशॉट लेने के लिए हर दूसरा तरीका है और देखें कि वर्तमान में प्रत्येक धागे के लिए क्या तरीके अपनाए जा रहे हैं। यह वहाँ बाहर है क्या का एक नमूना का उपयोग करता है।

अन्य दृष्टिकोण जावा बाइटकोड को शुरू करने और किसी अन्य अनुप्रयोग के लिए समय रोकने के लिए रिपोर्ट करने के लिए है।

एक कुशल जावा के लिए प्रोफाइलर लिखना बहुत कठिन नहीं है। IBM का अपना प्रोफाइल लिखने वाला (स्रोत कोड के साथ!) लिखने का एक लेख है । यह एक जावा इंटरएक्टिव प्रोफाइलर पर आधारित है ।

वहाँ बाहर प्रोफाइलर्स की एक भीड़ है - दोनों मुक्त और वाणिज्यिक (कैसे एक प्रोफाइलर JVM उदाहरण है कि आप को वापस रिपोर्ट कर सकते हैं के लिए हुक के बारे में (ईमेल या कुछ अन्य अधिसूचना) जब विशेष तरीके अपेक्षित रनटाइम से अधिक है? या एक करने के लिए झुका? वह प्रोग्राम जो वेब अनुरोधों को वापस आने में रिपोर्ट करता है - क्या उस अनुरोध के लिए ऐतिहासिक प्रोफ़ाइल बाद के निरीक्षण के लिए बच गई है?)। आपको बस यह जानना होगा कि आप उन्हें ढूंढना शुरू करने के लिए क्या देख रहे हैं और वहां से चले जाएं।

एक बार प्रोफाइलर मिल जाने के बाद, आप प्रोफाइलिंग परिणामों की व्याख्या करने के लिए तैयार हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.