बहुत से प्रोफाइलर इस तरह हैं। आपको जो जानने की आवश्यकता है वह नहीं है जहां प्रोग्राम अपना समय बिताता है, लेकिन क्यों। Any references on Dynamic Code Analysis?
जोड़ा गया: Here's how मुझे अपने कोड में "बाधाएं" मिलती हैं। (मुझे उस शब्द से नफरत है।) Here's a list कारणों से क्यों।
यह मानना पूरी तरह से स्वाभाविक है कि "बाधाओं" को खोजने के लिए आपको किसी भी तरह से मापने की ज़रूरत है। यह इतना स्वाभाविक है कि लगभग सभी प्रोफाइलर इस पर आधारित हैं।
असल में, ढूंढना और मापना एक ही समस्या नहीं है। यह देखने के लिए मापने की आवश्यकता है कि आपको क्या मिला (और निश्चित) ने एक अंतर बनाया है। मुझे ठीक करने के लिए क्या ढूँढना है, मापने से डीबगिंग की तरह है।
इसे समझाने का सबसे आसान तरीका एक अनंत, या लगभग अनंत लूप से शुरू करना है। ये तुम्हें कैसे मिला? आप इसे रोकते हैं और ढेर को देखते हैं, है ना? क्योंकि आप जानते हैं कि समस्या कहीं ढेर पर है। आपको केवल इसे एक बार रोकने की आवश्यकता है, और फिर आपको स्टैक पर कोड का अध्ययन करने की आवश्यकता है। अगर आप यह सुनिश्चित करना चाहते हैं कि आपको यह पता चला है तो इसे कुछ बार रोक दें।
मान लीजिए कि कोड केवल आवश्यकतानुसार दो गुना लेता है। इसका मतलब है कि जब आप इसे रोकते हैं, तो 50% मौका होता है कि आप इसे अनावश्यक चीज़ कर देखेंगे। यदि आप इसे रोकते हैं और इसे 10 बार देखते हैं, तो आप इसे लगभग 5 बार इस अधिनियम में पकड़ लेंगे। वास्तव में, जैसे ही आप इसे कुछ कर देखते हैं, आप 2 नमूने के रूप में अनुकूलित कर सकते हैं, आपको "बाधा" मिल गई है। इसे ठीक करें, गति को मापें, इसे दिखाएं, और दोहराएं।
भले ही आपकी सबसे बड़ी समस्या बहुत बड़ी न हो, फिर भी यह विधि अंततः इसे पाई जाएगी। इसके अलावा, एक आवर्धन घटना है, जहां बड़े लोगों को हटाने के बाद छोटी समस्याएं ढूंढना आसान हो जाती है। यह आपको तब तक जारी रखने की अनुमति देता है जब तक कोड लगभग इष्टतम न हो।
पीएस ऐसा करने के बाद, अभी भी गति के अवसर हो सकते हैं। उदाहरण के लिए, अनुकूलन एल्गोरिदम संख्यात्मक स्थिरता पर निर्भर कर सकते हैं। संदेश संचालित आर्किटेक्चर यह पता लगाने में कठोर हो सकता है कि कोड क्यों निष्पादित किया जा रहा है। रीयल-टाइम सॉफ़्टवेयर में, प्रदर्शन समस्या कभी-कभी होती है, और नमूना के लिए कम आसान हो सकती है। इसके लिए अधिक चतुरता की आवश्यकता है। बस मापने पर वापस गिरना यह नहीं करता है।
आप एक ही समस्या है कि मैं में था हो रही है [यह जब रूपरेखा अप्रासंगिक तरीकों की अनदेखी करना संभव है रूबी अनुप्रयोग?] (http://stackoverflow.com/questions/2241491/is-it-possible-to-ignore-irrelevant-methods-when-profiling-ruby-plplications)। मुझे रूबी-प्रोफेसर विधि उन्मूलन विकल्प के बारे में पता चला। –