2012-03-05 9 views
5

डॉटट्रेस का उपयोग करते समय, मुझे एक प्रोफाइलिंग मोड और एक समय माप विधि चुननी है। Profiling modes हैं:डॉटट्रेस - मेरे डेस्कटॉप ऐप के लिए मुझे किस प्रोफाइलिंग सेटिंग्स का उपयोग करना चाहिए?

  • ट्रेसिंग
  • लाइन-दर-पंक्ति
  • सैम्पलिंग

और time measurement methods हैं:

  • दीवार समय (प्रदर्शन काउंटर)
  • थ्रेड समय
  • वॉल टाइम (सीपीयू निर्देश)

ट्रेसिंग और लाइन-बाय-लाइन थ्रेड टाइम मापन का उपयोग नहीं कर सकता है। लेकिन यह अभी भी कोशिश करने के लिए मुझे सात अलग संयोजनों के साथ छोड़ देता है। मैंने अब एक दर्जन से अधिक बार डॉटट्रेस सहायता पृष्ठों को पढ़ा है, और मैं इसे चुनने के बारे में और अधिक जानकार नहीं रहूंगा।

मैं एक डब्ल्यूडब्ल्यूएफ ऐप पर काम कर रहा हूं जो वर्ड डॉक्स पढ़ता है, सभी पैराग्राफ और शैलियों को निकालता है, और उसके बाद दस्तावेज़ खंडों को चुनने के लिए उस निकाली गई सामग्री के माध्यम से लूप करता है। मैं इस प्रक्रिया को अनुकूलित करने की कोशिश कर रहा हूं। (वर्तमान में इसे पूरा होने में एक घंटे से अधिक समय लगता है, इसलिए मैं इसे समाप्त होने तक इसे दिए गए समय के लिए प्रोफाइल करने की कोशिश कर रहा हूं।)

कौन सा प्रोफाइलिंग और समय माप प्रकार मुझे सर्वोत्तम परिणाम देगा? या अगर जवाब "यह निर्भर करता है", तो यह किस पर निर्भर करता है? किसी दिए गए प्रोफाइलिंग मोड या समय माप विधि के पेशेवरों और विपक्ष क्या हैं?

+1

इसके अलावा, "उच्च सटीकता" कब चुना जाना चाहिए? आप इसे क्यों नहीं चुनेंगे? – usr

उत्तर

6

रूपरेखा प्रकार:

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

    स्नैपशॉट्स नमूना मोड में कब्जा डिस्क पर एक बहुत कम जगह पर कब्जा (मैं 5-6 कहेंगे कम जगह।) प्रारंभिक आकलन के लिए उपयोग या जब एक लंबे समय से चल आवेदन की रूपरेखा (जो अपने मामले की तरह लगता है।)

  • ट्रेसिंग: प्रत्येक विधि के लिए ली गई अवधि को रिकॉर्ड करता है। प्रोफाइलिंग के तहत ऐप धीमी गति से चलता है लेकिन बदले में, डॉटट्रेस प्रत्येक फ़ंक्शन की कॉल की सटीक संख्या दिखाता है, और फ़ंक्शन टाइमिंग जानकारी अधिक सटीक होती है। विधि-स्तर पर किसी समस्या के विवरण में डाइविंग के लिए यह अच्छा है।

  • लाइन-दर-रेखा: प्रति-पंक्ति के आधार पर कार्यक्रम को प्रोफाइल करता है। सबसे बड़ा संसाधन हॉग लेकिन सबसे बढ़िया प्रोफाइलिंग परिणाम। कार्यक्रम रास्ता धीमा कर देता है। प्रारंभिक रणनीति यहां प्रारंभिक रूप से किसी अन्य प्रकार का उपयोग करके प्रोफ़ाइल है, और उसके बाद लाइन-बाय-लाइन प्रोफाइलिंग के लिए हैंड-पिक फ़ंक्शन।


मीटर प्रकार के लिए के रूप में, मैं वे महान हादी हरीरी द्वारा Getting started with dotTrace Performance में काफी अच्छी तरह से वर्णित हैं लगता है।

दीवार समय (सीपीयू निर्देश): इस दीवार समय को मापने के लिए सबसे आसान और सबसे तेज़ तरीका है (जो है, बार जब हम एक दीवार घड़ी पर निरीक्षण)। हालांकि, कुछ पुराने मल्टी-कोर प्रोसेसर पर यह गलत परिणाम हो सकता है क्योंकि कोर टाइमर desynchronized हो रहा है। यदि ऐसा है, तो प्रदर्शन काउंटर का उपयोग करने के लिए की अनुशंसा की जाती है।

दीवार समय (प्रदर्शन काउंटर): प्रदर्शन काउंटरों Windows API का हिस्सा है और यह एक हार्डवेयर स्वतंत्र तरीके से समय के नमूने लेने की अनुमति देता है। हालांकि, एक एपीआई कॉल होने के नाते, हर उपाय पर्याप्त समय लेता है और इसलिए प्रोफाइल किए गए एप्लिकेशन पर इसका असर पड़ता है।

थ्रेड समय: बहु-थ्रेडेड अनुप्रयोग समवर्ती थ्रेड में एक दूसरे के दीवार समय में योगदान होता है। इस तरह के हस्तक्षेप से बचने के लिए हम थ्रेड टाइम मीटर का उपयोग कर सकते हैं जो सिस्टम एपीआई कॉल को ओएस शेड्यूलर द्वारा थ्रेड पर दिए गए समय की प्राप्त करने के लिए बनाता है। डाउनसाइड्स यह है कि थ्रेड टाइम नमूने सीपीयू काउंटर का उपयोग करने से बहुत धीमी है और सटीक थ्रेड शेड्यूलर (आमतौर पर 10 एमएमएस) द्वारा उपयोग किए गए क्वांटम के आकार से भी सीमित है। यह मोड केवल तभी समर्थित होता है जब प्रोफाइलिंग प्रकार नमूना

पर सेट किया गया है, हालांकि वे बहुत अधिक भिन्न नहीं हैं।


मैं अपने आप को रूपरेखा में एक जादूगर नहीं कर रहा हूँ, लेकिन आपके मामले में मैं काम करता है कि हास्यास्पद निष्पादित करने के लिए लंबे समय तक लेने की एक सूची प्राप्त करने के लिए नमूने के साथ शुरू करना चाहते हैं, और उसके बाद मैं उन्हें पंक्ति-दर के लिए चिह्नित करता हूँ ऑनलाइन प्रोफाइलिंग।

+0

मैंने इस प्रश्न में सुधार किया है, इसलिए मैं इसे भविष्य के संदर्भ के रूप में उपयोग कर सकता हूं, मुझे हमेशा उन वॉल टाइम के मिश्रित मिलते हैं। –

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

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