जवाबों:
मैंने JetBrains dotTrace और Redgate ANTS का बड़े पैमाने पर उपयोग किया है । वे सुविधाओं और कीमत में काफी समान हैं। वे दोनों उपयोगी प्रदर्शन प्रोफाइलिंग और काफी बुनियादी मेमोरी प्रोफाइलिंग प्रदान करते हैं।
dotTrace Resharper के साथ एकीकृत है, जो वास्तव में सुविधाजनक है, क्योंकि आप IDE से एक क्लिक के साथ एक इकाई परीक्षण के प्रदर्शन को प्रोफाइल कर सकते हैं। हालाँकि, डॉटट्रेस अक्सर अकस्मात परिणाम देता हुआ प्रतीत होता है (जैसे यह कहना कि एक विधि को चलाने में कई साल लग गए)
मैं उस तरीके को पसंद करता हूं जो ANTS प्रोफाइलिंग परिणाम प्रस्तुत करता है। यह आपको स्रोत कोड दिखाता है और प्रत्येक पंक्ति के बाईं ओर आपको बताता है कि इसे चलाने में कितना समय लगा। डॉटट्रेस के पास बस एक पेड़ का दृश्य है।
EQATEC प्रोफाइलर काफी बुनियादी है और आपको अपनी असेंबली के विशेष इंस्ट्रूमेंटेड वर्जन को संकलित करने की आवश्यकता होती है, जिसे बाद में EQATEC प्रोफाइलर में चलाया जा सकता है। हालांकि, यह मुफ़्त है।
कुल मिलाकर, मैं प्रदर्शन रूपरेखा के लिए ANTS को पसंद करता हूं, हालांकि यदि आप Resharper का उपयोग करते हैं तो dotTrace का एकीकरण एक हत्यारा विशेषता है और इसका मतलब है कि यह प्रयोज्य में ANTS को हराता है।
मुफ्त Microsoft सीएलआर प्रोफाइलर ( .Net फ्रेमवर्क 2.0 / .Net फ्रेमवर्क 4.0 ) आप सभी को .NET मेमोरी प्रोफाइलिंग की आवश्यकता है।
2011 अपडेट:
Scitech स्मृति प्रोफाइलर काफी बुनियादी यूआई लेकिन अप्रबंधित स्मृति में कुछ जानकारी जो dotTrace और चींटियों की कमी सहित उपयोगी जानकारी है, के बहुत सारे है - आप इसे उपयोगी आप COM इंटरॉप कर रहे हैं हो सकता है, लेकिन मैं अभी तक कोई प्रोफाइलर कॉम करता है कि खोजने के लिए स्मृति समस्याओं का निदान करना आसान है - आपको आमतौर पर बाहर तोड़ना होगा windbg.exe
।
ANTS प्रोफाइलर पिछले कुछ वर्षों में लीप्स और सीमा में आया है, और इसके मेमोरी प्रोफाइलर में कुछ सही मायने में उपयोगी विशेषताएं हैं जो अब मेरे अनुमान में एक पैकेज के रूप में इसे डॉट्रेस से आगे बढ़ाती हैं। मैं भाग्यशाली हूं कि दोनों के लिए लाइसेंस है, लेकिन अगर आप प्रदर्शन और मेमोरी दोनों के लिए एक .Net प्रोफाइलर खरीदने जा रहे हैं, तो इसे एएनएसटीएस बनाएं।
अन्य लोगों ने प्रदर्शन प्रोफाइलिंग को कवर किया है, लेकिन मेमोरी प्रोफाइलिंग के संबंध में मैं वर्तमान में Scitech .NET मेमोरी प्रोफाइलर 3.1 और ANTS मेमोरी प्रोफाइलर 5.1 (सितंबर 2009 के वर्तमान संस्करण) दोनों का मूल्यांकन कर रहा हूं। मैंने एक या दो साल पहले JetBrains की कोशिश की थी और यह ANTS (मेमोरी प्रोफाइलिंग) के लिए उतना अच्छा नहीं था, इसलिए मैंने इस बार परेशान नहीं किया। वेब साइटों को पढ़ने से ऐसा लगता है कि इसमें अन्य दो की तरह ही मेमोरी प्रोफाइलिंग सुविधाएँ नहीं हैं ।
ANTS और Scitech मेमोरी प्रोफाइलर दोनों में ऐसी विशेषताएं हैं जो अन्य नहीं करता है, इसलिए जो सबसे अच्छा है वह आपकी प्राथमिकताओं पर निर्भर करेगा। आम तौर पर बोलते हुए, Scitech एक अधिक विस्तृत जानकारी प्रदान करता है जबकि ANTS एक वास्तव में लीक करने वाली वस्तु की पहचान करने में अविश्वसनीय है। कुल मिलाकर, मैं ANTS को पसंद करता हूं क्योंकि यह संभावित लीक की पहचान करने में बहुत तेज है।
मेरे अनुभव से प्रत्येक के मुख्य पक्ष और विपक्ष इस प्रकार हैं:
ANTS और Scitech .NET मेमोरी प्रोफाइलर की सामान्य सुविधाएँ
चींटियों
Scitech .NET मेमोरी प्रोफाइलर
सारांश के अनुसार, मुझे लगता है कि एएनएसटीएस आपको यह पता लगाने में मदद करता है कि क्या तेजी से लीक हो रहा है, जबकि स्किटेक आपके समग्र अनुप्रयोग मेमोरी प्रदर्शन और व्यक्तिगत वस्तुओं के बारे में थोड़ा और अधिक विवरण प्रदान करता है जब आप जानते हैं कि क्या देखना है (उदाहरण के लिए निर्माण पर स्टैक ट्रेस)। यदि अपरिहार्य डिस्पोजेबल ऑब्जेक्ट्स का स्टैक ट्रेस और ट्रैकिंग ANTS में जोड़ा गया था तो मुझे कुछ और उपयोग करने की आवश्यकता नहीं होगी।
मैंने हाल ही में EQATEC Profiler http://www.eqatec.com/tools/profiler की खोज की । यह अधिकांश .NET संस्करणों और प्लेटफार्मों के एक समूह के साथ काम करता है। इसका उपयोग करना आसान है और इसके कुछ हिस्से मुफ्त हैं, यहां तक कि व्यावसायिक उपयोग के लिए भी।
[ पूर्ण प्रकटीकरण ]
जबकि अभी तक यहाँ सूचीबद्ध अन्य .NET मेमोरी प्रोफाइलर्स में से कुछ भी पूर्ण-विशेषताओं के रूप में नहीं है, बाजार में जस्टट्रेस नामक एक नई प्रविष्टि है । यह Telerik द्वारा बनाया गया है और यह प्राथमिक लक्ष्य है कि सभी प्रकार के ऐप्स (वेब / सिल्वरलाइट / डेस्कटॉप) के लिए ट्रेसिंग / प्रोफाइलिंग को आसान और तेज़ बनाया जाए।
यदि आपने कभी अन्य उपकरणों के साथ प्रोफाइलिंग और अनुकूलन को डराया या धीमा पाया है, तो JustTrace देखने लायक हो सकता है।
NProf मत भूलना - एक अच्छा, फ्रीवेयर प्रोफाइलर।
मैं पाया है dotTrace प्रोफाइलर द्वारा जेटब्रेन्स नेट और के लिए एक उत्कृष्ट रूपरेखा उपकरण उनके ASP.NET मोड गुणवत्ता है किया जाना है।
ANTS प्रोफाइलर । मैंने कई का उपयोग नहीं किया है, लेकिन मुझे वास्तव में ANTS के बारे में कोई शिकायत नहीं है। दृश्य वास्तव में सहायक है।
स्मृति के लिए समय और SciTech मेप्रोफाइलर के लिए ऑटोमेटेडक्यूएक्यू टाइम ।
यदि आप कुछ त्वरित, आसान और मुफ्त खोज रहे हैं, तो http://code.google.com/p/slimtune/ काम ठीक कर रहा है।
मैं WinForms और कंसोल ऐप्स के लिए JetBrains डॉटट्रेस के साथ काम कर रहा हूं (अभी तक ASP.net पर परीक्षण नहीं किया गया है), और यह काफी अच्छी तरह से काम करता है:
उन्होंने हाल ही में एक "व्यक्तिगत लाइसेंस" भी जोड़ा है जो कॉर्पोरेट एक की तुलना में काफी सस्ता है। फिर भी, अगर किसी और को कुछ सस्ता या मुफ्त भी पता है, तो मैं भी सुनना चाहूंगा :-)
भयानक scitech .net मेमोरी प्रोफाइलर मत भूलना
यह नीचे ट्रैक करने के लिए बहुत अच्छा है कि आपका .net ऐप मेमोरी से बाहर क्यों चल रहा है।
मैं जोड़ सकता हूँ कि dotTrace की मेमोरी और प्रदर्शन ट्रेस सत्रों को अलग करने की क्षमता बिल्कुल अमूल्य है (ANTS में मेमोरी की अलग सुविधा भी हो सकती है, लेकिन मुझे प्रदर्शन भिन्न नहीं दिखाई दिया)।
बग फिक्स या एन्हांसमेंट से पहले और बाद में एक प्रोफाइलिंग सत्र को चलाने में सक्षम होना, फिर परिणामों की तुलना करना अविश्वसनीय रूप से मूल्यवान है, विशेष रूप से एक मैमथ विरासत के साथ। NET आवेदन (मेरे मामले में) जहां प्रदर्शन कभी भी प्राथमिकता नहीं थी और जहां अड़चन हो सकती है। बहुत थकाऊ। पहले और बाद के अंतर को करना आपको प्रत्येक विधि के लिए कॉल गणना में परिवर्तन और प्रत्येक विधि के लिए अवधि में परिवर्तन देखने की अनुमति देता है ।
यह न केवल कोड परिवर्तन के दौरान सहायक होता है, बल्कि यदि आपके पास एक ऐसा अनुप्रयोग है जो प्रत्येक क्लाइंट / ग्राहक के लिए एक अलग डेटाबेस का उपयोग करता है, तो कहें। यदि एक ग्राहक धीमेपन की शिकायत करता है, तो आप उनके डेटाबेस का उपयोग करके एक रूपरेखा सत्र चला सकते हैं और "तेज़" डेटाबेस के साथ परिणामों की तुलना करके यह निर्धारित कर सकते हैं कि कौन से संचालन धीमेपन में योगदान दे रहे हैं। बेशक कई डेटाबेस-साइड प्रदर्शन उपकरण हैं, लेकिन कभी-कभी मैं एप्लिकेशन पक्ष से प्रदर्शन मीट्रिक देखने में मदद करता हूं (क्योंकि यह उपयोगकर्ता वास्तव में क्या देख रहा है) के करीब है।
नीचे पंक्ति: dotTrace महान काम करता है, और अंतर अमूल्य है।
अतीत में, मैंने प्रोफाइलर का उपयोग किया है जो विजुअल स्टूडियो टीम सिस्टम के साथ जहाज करता है ।
SharpDevelop (3.1.1) की वर्तमान रिलीज़ में एक अच्छा एकीकृत प्रोफाइलर है। यह काफी तेज़ है, और SharpDevelop IDE और इसके NUnit धावक में बहुत अच्छी तरह से एकीकृत है। परिणाम एक लचीली ट्री / सूची शैली में प्रदर्शित किए जाते हैं (अपना चयन करने के लिए LINQ का उपयोग करें)। प्रदर्शित विधि को दोहराकर सीधे स्रोत कोड में कूद जाता है।
मुझे संदेह है कि विजुअल स्टूडियो टीम सिस्टम के साथ आने वाला प्रोफाइलर सबसे अच्छा प्रोफाइलर है, लेकिन मैंने पाया है कि यह कई मौकों पर अच्छा होता है। वीएस की पेशकश से परे आपको विशेष रूप से क्या चाहिए?
संपादित करें: दुर्भाग्य से यह केवल वीएस टीम सिस्टम में उपलब्ध है, लेकिन यदि आपके पास इसकी पहुंच है तो यह जांचने लायक है।
त्वरित नमूनाकरण के लिए Intel® VTune ™ प्रदर्शन विश्लेषक
मुझे आपके ध्यान में एक अद्भुत उपकरण लाना चाहिए जो मैंने कुछ समय पहले इस्तेमाल किया है। एविकोड इंटरसेप्टर स्टूडियो । मेरी पिछली कंपनी में हमने वेबप्लिकेशन को प्रोफाइल करने के लिए इस अद्भुत उपकरण का इस्तेमाल किया ( यह दुनिया में सबसे बड़ा वेब अनुप्रयोग और अब तक का सबसे बड़ा नागरिक आईटी प्रोजेक्ट माना जाता है )। प्रदर्शन टीम ने इस शानदार उपकरण की मदद से चमत्कार किया। यह इसे कॉन्फ़िगर करने के लिए एक दर्द है, लेकिन यह एक बार की गतिविधि है और मैं कहूंगा कि यह समय के लायक है। इस पृष्ठ को चेकआउट करेंविवरण के लिए को ।
धन्यवाद, जेम्स
मेरे लिए स्पीडट्रेस बाजार पर सबसे अच्छा उपकरण है क्योंकि यह न केवल आपके अनुप्रयोगों के अंदर बाधाओं को खोजने में आपकी मदद करता है। यह पता लगाने में भी आपकी मदद करता है कि आपका एप्लिकेशन क्रैश क्यों हो रहा है, यह पता लगाने के लिए कि आपका एप्लिकेशन इंस्टॉल नहीं हुआ है, आपके डेटा के इनपुट के आधार पर, आपका एप्लिकेशन प्रदर्शन कभी-कभी खराब होता है, धीमी db लेनदेन की पहचान करने के लिए परिदृश्यों के समस्या निवारण में मदद करता है।
मैं हाल ही में टेलरिक के जस्टट्रेस का परीक्षण कर रहा हूं और हालांकि यह एक तैयार उत्पाद से अच्छी तरह से दूर है, लोग सही दिशा में जा रहे हैं।
यदि लाइसेंसिंग एक मुद्दा है तो आप मेमोरी प्रोफाइलिंग के लिए WINDBG की कोशिश कर सकते हैं
NuMega ट्रू टाइम प्रोफाइलर माइक्रो फोकस द्वारा DevPartner स्टूडियो में रहता है। यह .NET ऐप्स के लिए लाइन और मेथड लेवल डिटेल प्रदान करता है, जिसमें केवल PDBs की आवश्यकता होती है, किसी स्रोत की आवश्यकता नहीं होती है (लेकिन यह मदद करता है।) यह एल्गोरिथ्म भारी रूटीन बनाम उन लोगों के बीच भेदभाव कर सकता है, जिनके साथ मैं लंबे समय तक / ओ इंतजार करता है, जो हमारे मालिकाना प्रति थ्रेड कर्नेल मोड ड्राइवर का उपयोग करता है। 4 फरवरी, 2011 को नए 64-प्रक्रिया समर्थन वाले संस्करण 10.5 जहाज। बेशर्म प्लग: मैं डेपार्टनर उत्पाद लाइन पर काम करता हूं। 10.5 लॉन्च की खबर के लिए http://www.DevPartner.com पर फॉलो करें ।
अस्वीकरण: मैं माइक्रो फोकस में DevPartner के लिए उत्पाद प्रबंधक हूं।
मुझे इसका उपयोग करके एक बड़े C # ऐप में बहुत सारी समस्याएं मिली हैं ।
आमतौर पर समस्या स्टार्टअप या शटडाउन के दौरान होती है क्योंकि प्लग लोड किए जा रहे हैं, और बड़ी डेटा संरचनाएं बनाई जा रही हैं, नष्ट हो रही हैं, क्रमबद्ध हो गई हैं, या निराशा हो रही हैं। अक्सर वे एक से अधिक बार बनाए और आरंभ किए जाते हैं, और हैंडलर को कई बार जोड़ दिया जाता है, जिससे समस्या और बढ़ जाती है।
इस तरह के मामलों में, कार्यक्रम इतना सुस्त हो सकता है कि केवल 2 नमूने दोषी विधि / कार्य / उत्पाद बिक्री साइटों को इंगित करने के लिए पर्याप्त हैं।
हमने आपकी कंपनी में .NET के लिए YourKit Profiler का चयन किया क्योंकि यह सबसे अच्छा मूल्य (मूल्य बनाम सुविधा) था। एक छोटी सी कंपनी के लिए जो लचीला लाइसेंस (फ्लोटिंग लाइसेंस) रखना चाहती है, यह एक सही विकल्प था - ANTS उस समय डेवलपर सीट लॉकेट था।
साथ ही, यह हमें रनिंग प्रक्रिया से जुड़ने की क्षमता प्रदान करता है जो कि डॉटट्रेस के साथ संभव नहीं था। हालांकि सावधान रहें कि अटैचमेंट सबसे अच्छा विकल्प नहीं है क्योंकि सब कुछ .NET धीमा हो जाएगा, लेकिन अन्य प्रक्रियाओं द्वारा शुरू किए गए .NET अनुप्रयोगों को प्रोफाइल करने का यह एकमात्र तरीका था। फ़ीचर वार, ANTS और डॉट्रेस बेहतर थे - लेकिन अंत में YourKit काफी अच्छा था।