2011-10-23 12 views
7

डेल्फी 2010 के लिए, वहाँ एक रास्ता एक चित्र प्राप्त करने के लिए, समारोह एक्स के साथ शुरू (या यहां तक ​​कि पूरे कार्यक्रम), क्या अन्य कार्यों/प्रक्रियाओं कहा जाता है की ...क्या कॉल करने का कोई तरीका है जो कॉल करता है?

की तर्ज पर कुछ है:

Function X 
    - Function A 
    - Procedure B 
    - Procedure C 
    - Function D 

(बेशक चित्रमय अच्छे होगा ...)

+1

संबंधित लेकिन अलग; डेल्फी एंटरप्राइज़/आर्किटेक्ट यूएमएल सुविधाओं में अनुक्रम आरेखों के लिए समर्थन शामिल है। बिल्कुल ठीक नहीं है कि आप क्या पूछ रहे हैं, मुझे संदेह है, लेकिन संबंधित है। अनुक्रम आरेख उदाहरण किसी अन्य उपकरण से यहां है: http://www.ibm.com/developerworks/rational/library/3101.html –

+0

इस 2 साल बाद देखकर, मैं चाहता हूं कि ओपी ने संकेत दिया था कि वह स्थिर है या नहीं गतिशील कॉल पेड़। – Mawg

उत्तर

9

Peganza Pascal Analyzer दोनों call tree और reverse call tree रिपोर्ट प्रदान करता है। कई अन्य स्थिर कोड विश्लेषक उपलब्ध हैं, लेकिन यह वह है जिसे मैं परिचित हूं।

जहां तक ​​मुझे पता है, इस प्रकृति का कुछ भी डेल्फी में नहीं बनाया गया है।

+2

एकटाइम (जो अब मुझे लगता है डेल्फी के साथ शामिल है) आपको एक विशेष कोड चलाने के कॉल पेड़ दिखाएगा। –

+0

@ डेविड यह गतिशील विश्लेषण सही है? –

+0

एकटाइम स्थिर और गतिशील विश्लेषण दोनों करता है, और पेगेंजा पाल केवल स्थिर विश्लेषण करता है। AQTime में अधिक ग्राफिकल डिस्प्ले है, जबकि पेगेंजा आउटपुट टेक्स्ट है, जिसे आप फ्लैट टेक्स्ट या एक्सएमएल के रूप में आउटपुट कर सकते हैं, और फिर खुद को एक चार्ट बना सकते हैं। पाल गतिशील रूप से होने वाली कॉल की असली दुनिया श्रृंखलाओं में से एक बहुत अधिक नहीं मिल सकता है, जैसे ईवेंट कॉलबैक, या यहां तक ​​कि ऐसे मामलों जहां व्युत्पन्न कक्षाएं वर्चुअल विधियों को ओवरराइड करती हैं, जो तब बेस क्लास विधि आदि द्वारा बुलाए जाने वाले अन्य चीजों को कॉल करती हैं। इसके लिए, गतिशील विश्लेषण की आवश्यकता होगी। –

3

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

enter image description here

AQTime pro काफी महंगा है, लेकिन मैं किसी भी मुफ्त विकल्प के बारे में पता कर रहा हूँ। (नहीं, मैं स्मार्टबियर, या एम्बरकेडरो के लिए काम नहीं करता हूं।)। मैं एक पेशेवर डेवलपर हूं, और मुझे लगता है कि इस तरह के उपकरण मूल्य के लायक हैं। तुम्हारा कॉल।

मैं आमतौर पर, कॉल अनुक्रम सुविधा का उपयोग करते हुए प्रदर्शन प्रोफाइलर से चल रहा है, ताकि मैं कुछ समय मूल्यों (digram नीचे, Time: #.## msec से पता चलता है क्योंकि डेटा प्रदर्शन प्रोफाइलर द्वारा इकट्ठा किया गया था गतिशील, बल्कि स्थिर द्वारा की तुलना में प्राप्त विश्लेषण प्रोफाइलर, जो यह नहीं जानता कि फ़ंक्शन निष्पादित करने में कितना समय लगता है)।

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