2009-05-26 8 views
6

मैं विजुअल स्टूडियो 2008 में अपने सी # एप्लिकेशन को विकसित करने के लिए एक प्रोफाइलर की तलाश में हूं। मुझे कुछ ऐसा लगता है जो सस्ती है (खुले सोर्स को प्राथमिकता दी जाती है) और यह वीएस -2008 में एकीकृत हो सकती है। मुझे Visual Studio Profiler मिला लेकिन मुझे नहीं पता कि इसका उपयोग कैसे किया जाए। मैंने स्टैंडअलोन संस्करण स्थापित किया जो विजुअल स्टूडियो पर निर्भर करता है (अकेले खड़े नहीं होने के लिए मुझे लगता है?) लेकिन टूल्स मेनू में कभी भी कुछ भी नहीं दिखता है जैसे यह चलता है।विजुअल स्टूडियो 2008 में सी # अनुप्रयोगों का उपयोग करने के लिए मुझे प्रोफाइलर कहां मिल सकता है?

+0

क्या आप वीएस एक्सप्रेस का उपयोग कर रहे हैं? – GEOCHET

+0

नहीं, मेरे पास प्रो संस्करण – Malfist

उत्तर

11

यहां ओपन सोर्स की एक सूची है .Net profilers

मैंने रेड गेट से Ants-Profiler का उपयोग किया है और इसकी कीमत है (इसके लायक मूल्य, आईएमएचओ)।

+0

+1 - प्रत्येक पैसे के लायक मूल्य –

+0

एएनटीएस प्रोफाइलर के लिए एक और +1 ... निश्चित रूप से पैसे के लायक है। – jrista

+0

सहमत एएनटीएस बहुत अच्छा है – miguel

6

विजुअल स्टूडियो प्रोफाइलर केवल टीम सिस्टम का हिस्सा है। यह विजुअल स्टूडियो प्रोफेशनल में शामिल नहीं है।

एक मुक्त .NET प्रोफाइलर है जिसे nprof कहा जाता है, लेकिन यह अभी तक जारी नहीं हुआ है और यह अपेक्षाकृत अस्थिर हो सकता है। इसके अलावा, कुछ उत्कृष्ट व्यावसायिक प्रोफाइलर हैं जैसे कि ANTS Profiler from Red Gate; हालांकि, ये कम लागत नहीं हैं।

+2

है मैंने कभी भी एएनटीएस प्रोफाइलर का उपयोग नहीं किया है, लेकिन आप बजट पर होने तक लाल गेट द्वारा बनाई गई किसी भी चीज़ के साथ गलत नहीं जा सकते हैं। – TheTXI

+0

अगर मुझे सही याद है कि लाल गेट में 14 दिन का परीक्षण संस्करण है। मैं निश्चित रूप से आपको इसका उपयोग करने की सलाह दूंगा। मैंने इसे अन्य लोगों को सलाह दी है और वे एक लाइसेंस खरीदना समाप्त कर दिया है। एएनटीएस प्रोफाइलर के लिए – bastijn

3

मैंने बड़ी सफलता के साथ AQtime का उपयोग किया है।

जैसा कि पहले से ही उल्लेख किया गया है ANTS भी एक अच्छा विकल्प है।

1

this stackoverflow thread में .NET के लिए प्रोफाइलर्स पर कुछ चर्चा है। मैंने CLR Profiler कुछ का उपयोग किया है, और इससे पहले मुझे सॉफ्टवेयर में कुछ प्रदर्शन समस्याओं का ख्याल रखने में मदद मिली है। कोशिश करने लायक हो सकता है। माइक्रोसॉफ्ट ने a guide on how to use the CLR Profiler प्रकाशित किया है।

4

मेरी सिफारिश dotTrace है। मुफ्त नहीं है, व्यक्तिगत लाइसेंस के लिए कीमत 170 यूरो है।

http://www.jetbrains.com/profiler/index.html

+1

हम हमारी कंपनी में डॉटट्रेस का उपयोग करते हैं। इसका उपयोग करना बहुत आसान है और बहुत उपयोगी है। मैं इसे अनुशंसा करता हूं :) – Beatles1692

+0

मैं इसके परीक्षण संस्करण का भी उपयोग करता हूं, जब तक यह रहता है :) और मुझे इसकी सादगी पसंद है और यह बहुभाषी परियोजनाओं का प्रबंधन कैसे करता है। http://stackoverflow.com/questions/906915/c-code-performance/907676#907676 –

+0

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

2

तुम सिर्फ स्मृति प्रोफाइलिंग करना चाहते हैं, .NET Memory Profiler उत्कृष्ट है। इसके बाद एक परीक्षण अवधि और छोटी लागत है - इसके लायक है। यदि आप कुछ पैसे खर्च करना चाहते हैं, तो DevPartner Studio बहुत अच्छा है।

+0

मैं वास्तव में अभी प्रति विधि निष्पादन समय की तलाश में हूं, लेकिन स्मृति प्रोफाइलिंग बाद में आ सकती है – Malfist

+1

मैं .NET मेमोरी प्रोफाइलर के लिए प्रतिबद्ध हो सकता हूं। कौन कहता है कि आप .NET में मेमोरी लीक नहीं कर सकते! –

+0

वे पारंपरिक अर्थ में स्मृति रिसाव नहीं हैं, लेकिन हाँ, आप उन्हें प्राप्त कर सकते हैं। जावा में भी जीसी सही नहीं है। – Malfist

5

EQATEC profiler, निशुल्क देखें और बहुत अच्छी तरह से काम करता है। एएसपी.नेट और .NET सीएफ के लिए भी काम करता है।

+0

वाह, यह अच्छा लग रहा है। मैं इसे आज़माउंगा और देख सकता हूं कि यह एएनटीएस के साथ प्रतिस्पर्धा कर सकता है या नहीं। मुझसे +1 – tobsen

+0

+1 यह बहुत सभ्य है – magritte

1

मेमोरी डायग्नोस्टिक्स के विपरीत प्रदर्शन ट्यूनिंग के लिए, simple way to do it है।

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

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

मैं कई नमूने एन लेता हूं, आमतौर पर 20 से अधिक नहीं। यदि कोई हॉटस्पॉट या दुष्ट विधि है तो कहीं मध्य-स्टैक को कॉल करें, निष्पादन समय के कुछ अंश एफ लेते हैं, तो नमूने की संख्या जो इसे दिखाएगी एनएफ + - वर्ग (एनएफ (1-एफ)। यदि एन = 20 और एफ = 0।15, उदाहरण के लिए, नमूने की संख्या जो इसे दिखाएगी 3 + - 1.6 है, इसलिए मुझे इसे खोजने का एक शानदार मौका है।

अक्सर एफ 0.5 की तरह अधिक होता है, इसलिए नमूने दिखाने की संख्या 10 + - 2.2 है, इसलिए इसे याद नहीं किया जाएगा।

ध्यान दें कि कोड के कितनी तेज़ी से यह कितना तेज़ है, या कितनी बार चलता है इसके साथ यह बिल्कुल कुछ नहीं है। यदि इसे अनुकूलित करना आपको समय का एक निश्चित प्रतिशत बचाएगा, यह निर्धारित करता है कि नमूने का प्रतिशत आपके लिए कितना प्रदर्शित करेगा।

आमतौर पर अनुकूलित करने के लिए कई जगहें हैं। यदि समस्या 1 में F1 = 0.5 है, और समस्या 2 में F2 = 0.1 है, तो यदि आप समस्या 1 को ठीक करते हैं (प्रोग्राम की गति को दोगुना करते हैं), तो F2 आमतौर पर उस कारक से 0.2 तक बढ़ जाती है। तो आप इसे फिर से कर सकते हैं और समस्या को ढूंढने के लिए सुनिश्चित हो सकते हैं 2. इस तरह, आप समस्याओं का उत्तराधिकार कम कर सकते हैं, जब तक कि कोड व्यावहारिक रूप से इष्टतम न हो।

+0

हाहा, मज़े करो, आपको कुछ दशकों में मिलते हैं! यदि आपके पास लाखों कॉल हैं तो क्या होगा? – leppie

+0

@leppie: क्षमा करें? यदि आपका मतलब प्रति सेकेंड लाखों कॉल है, इससे कोई फर्क नहीं पड़ता। समय का प्रतिशत क्या मायने रखता है। और बीटीडब्लू, यह एक उपकरण को स्थापित करने और सीखने के समय के एक अंश में किया जा सकता है। –

+0

क्या यह सोचने की वजह से डाउनवोट था कि यह काम करेगा, या सिर्फ "पसंद नहीं"? –

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