2008-10-04 11 views
24

क्या विंडोज़ में कोई सभ्य नमूनाकरण (उदाहरण के लिए गैर-उपकरण) प्रोफाइलर्स उपलब्ध हैं? अधिमानतः मैकोज़ पर शार्क के समान कुछ, हालांकि मैं स्वीकार करने के लिए तैयार हूं कि मुझे विंडोज़ पर ऐसे प्रोफाइलर के लिए भुगतान करना होगा।विंडोज के लिए डीसेंट प्रोफाइलर?

मैंने वीएस टीम सूट में प्रोफाइलर की कोशिश की है और अत्यधिक प्रभावित नहीं हुआ था, और यह सोच रहा था कि क्या कोई अन्य अच्छा था।

[संपादित करें: Erk, मैं कहना यह C/C++ के लिए है, न कि नेट से भूल गया - किसी भी भ्रम के लिए खेद है]

+0

मुझे ऐसे प्रोफेसरों के लिए भी सुझाव पसंद आएंगे जो वीएस से इतनी बारीकी से बंधे नहीं हैं, जिसका मतलब है कि अकेले भाग सकते हैं, और अधिमानतः पीडीबी की तुलना में अधिक डीबगिंग सूचना प्रारूपों का उपयोग करें। – aib

उत्तर

11

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

यह वाणिज्यिक है, और मुझे कहना है कि यह दुनिया का सबसे आसान यूआई नहीं है।

+1

वीट्यून एक अच्छा उपकरण है, लेकिन यह मुफ़्त नहीं है और यह विंडोज इंटीरियर को समझ में नहीं आता है। – Foredecker

+4

vtune भी एक भयानक, भयानक यूआई है, मैंने इसे पूरी तरह से डरावना पाया। –

-3

मुझे यकीन है कि क्या एक गैर instrumenting प्रोफाइलर है नहीं कर रहा हूँ, लेकिन मैं .NET के लिए कह सकता हूं मैं रेडगेट के एएनटीएस प्रोफाइलर से प्यार करता हूं। संस्करण 3 उपयोग की आसानी और संस्करण 4 के लिए एमएस संस्करण को धड़कता है, जो मनमाने ढंग से समय स्लाइस की अनुमति देता है, एमएस को मजाक की तरह दिखता है।

+2

सैंपलिंग प्रोफाइलर्स समय-समय पर आपके प्रोग्राम के राज्य को देखकर काम करते हैं, और इस प्रकार गैर-आक्रामक होते हैं, और स्रोत कोड के बिना निष्पादन योग्य पर काम करते हैं। (हालांकि आपको फ़ंक्शन कॉल को हल करने के लिए शायद डिबगिंग जानकारी की आवश्यकता होगी) - अगर मैं गलत हूं तो मुझे सही करें। – aib

+0

@ एआईबी: यह निश्चित रूप से फ़ंक्शन नाम/स्टैक लेआउट जानकारी रखने में मदद करता है, हां, लेकिन निश्चित रूप से .NET के पास वैसे भी है (हालांकि नामों को विचलित करना संभव है जैसे कि वे अनिवार्य रूप से संख्याएं हैं ...)। रेखा संख्याएं निश्चित रूप से चोट नहीं पहुंचाती हैं, और आपको जो भी करने की आवश्यकता है, बिना किसी जानकारी के डीबग जानकारी की आवश्यकता है। – SamB

16

विंडोज के लिए, विंडोज 0 एसडीके के साथ जहाजों को मुफ्त Xperf देखें। यह नमूना प्रोफाइल का उपयोग करता है, इसमें कुछ उपयोगी UI है, & को उपकरण की आवश्यकता नहीं है। प्रदर्शन समस्याओं को ट्रैक करने के लिए काफी उपयोगी है। आप सवालों का जवाब दे सकते हैं जैसे:

सबसे अधिक CPU का उपयोग कौन कर रहा है? कॉल स्टैक्स का उपयोग करके फ़ंक्शन नाम पर ड्रिल करें।

सबसे अधिक स्मृति आवंटित कौन कर रहा है?

बकाया स्मृति आवंटन (लीक)

सबसे रजिस्ट्री प्रश्नों कौन कर रहा है?

डिस्क लिखते हैं? आदि

+1

XPerf बहुत अच्छा लगता है, लेकिन यह XP पर नहीं चल सकता है, इसे Vista या Server 2007 या नए की आवश्यकता है। एक पिटी - कार्यक्षमता वास्तव में बहुत अच्छी लगती है, नमूना प्रोफाइलिंग के आधार पर कॉलस्टैक कैप्चर आसान होगा। – Suma

+0

XPerf Vista में संशोधित ईटीडब्ल्यू पर भारी निर्भर करता है, Vista/Server08 में छोटे ज्ञात सुधारों में से एक। – user15071

+0

argh .. हाँ .. xp असंगत। तो यह शुरू होता है ... :( –

2

मैंने दो साल पहले इंटेल के विट्यून की बजाय एक बड़ी परियोजना के साथ प्रयास किया है। यह तब एक इंस्ट्रूमेंटिंग प्रोफाइलर था और डीएलएल के लिए यह इतना लंबा लगा कि मैं प्रोफाइल करने का प्रयास कर रहा था कि अंततः एक घंटे बाद धैर्य खो गया।

एक उपकरण जो मैंने काफी अच्छी सफलता प्राप्त की है और जिसे मैं अत्यधिक अनुशंसा करता हूं वह AQTime है। यह न केवल उत्कृष्ट प्रदर्शन प्रोफाइलिंग संसाधन प्रदान करता है बल्कि यह वास्तव में अच्छी स्मृति प्रोफाइलिंग भी करता है जो मेमोरी लीक को ट्रैक करने में मेरी मदद करता है।

+0

इंटेल वीट्यून के दो तरीके हैं: उपकरण (कॉलस्टैक और कॉलग्राफ का उत्पादन कर सकते हैं) और नमूनाकरण (केवल हॉटस्पॉट, कोई कॉलस्टैक नहीं) – Suma

4

हम दोनों VTune और AQTime का उपयोग करते हैं, और मैं दोनों के लिए झुका सकता हूं। जो आपके लिए सबसे अच्छा काम करता है आपकी आवश्यकताओं पर निर्भर करता है। दोनों में नि: शुल्क परीक्षण संस्करण हैं - मेरा सुझाव है कि आप उन्हें जाने दें।

+0

मैं वीट्यून और एकटाइम की तुलना करने की कोशिश कर रहा हूं। क्या आप कृपया अपनी सुविधाओं के अधिक डिटिल्स प्रदान कर सकते हैं? –

+0

परीक्षण एकटाइम अब और वाह, एएमडी कोड विश्लेषक इसकी आदिम खिड़की के साथ किसी भी परिणाम को दिखाने का प्रबंधन भी नहीं करता था, लेकिन यह ... लाइन प्रदर्शन द्वारा लाइन, लाइन असंतुलन से लाइन, पेड़ पर कॉल करें, आप इसे नाम दें। मैं अब तक खुश हूं, और उपयोग करने में आसान है। – nus

3

Windows Driver Kit में एक गैर-उपकरण उपयोगकर्ता/कर्नेल नमूना प्रोफाइलर शामिल है जिसे "kernrate" कहा जाता है। यह बहु-प्रक्रिया अनुप्रयोगों को प्रोफाइल करने के लिए उपयोगी लगता है, जो अनुप्रयोग कर्नेल में अपना अधिकांश समय व्यतीत करते हैं, और डिवाइस ड्राइवर (बेशक)। यह KrView (Kernrate Viewer) और Windows Server 2003 Resource Kit Tools पैकेज में भी उपलब्ध है।

कर्नाट विंडोज 2000 पर काम करता है और बाद में (Xperf के विपरीत, जिसे Vista/Server 2008 की आवश्यकता होती है)। यह कमांड लाइन आधारित है और दस्तावेज़ीकरण विकल्पों की कुछ हद तक डरावनी सूची है। मुझे यकीन नहीं है कि क्या यह कॉल स्टैक या सिर्फ प्रोग्राम काउंटर रिकॉर्ड कर सकता है। यदि आप प्रतीक सर्वर का उपयोग करते हैं, तो kernrate.exe के समान संस्करण में के प्राचीन संस्करण का उपयोग करने से रोकने के लिए %SystemRoot%\system32 में स्थापित होने से रोकने के लिए dbghelp.dll और symsrv.dll को उसी निर्देशिका में अद्यतित रखना सुनिश्चित करें।

6

एएमडी के CodeAnalyst मुफ्तhere

+2

शायद एक गूंगा क्यू, लेकिन कोडएनलिस्ट इंटेल सीपीयू पर काम करता है? – Roddy

+1

@ रोडी बिल्कुल! –

11

मैं जानता हूँ कि मैं अपने जवाब महीनों जोड़ रहा करने के बाद इस प्रश्न पूछा गया था, लेकिन मैंने सोचा कि मैं एक सभ्य, खुला स्रोत प्रोफाइलर का कहना होता है: Very Sleepy

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

+0

ऐसा लगता है कि यह एक बहुत अच्छा प्रोफाइलर हो सकता है। लेकिन इसे किसी प्रक्रिया में सभी धागे का नमूना देने की क्षमता की आवश्यकता है। और प्रक्रिया पिकर को पीआईडी ​​शामिल करने की आवश्यकता है (क्योंकि कई क्रोम.एक्सई या आईईएक्सप्लोर हैं।exe प्रक्रियाओं, लेकिन केवल एक माता पिता है) –

+1

.exe लोड करने में यह सफलता दर है, मैं प्रोफ़ाइल को लगभग 50% तक देखना चाहता था। मज़ा नहीं। –

+0

मैंने इसे चलाने में कामयाब रहा है और हॉट स्पॉट खोजने के लिए निष्पादन योग्य प्रोफाइल किया है। सभी डीबग प्रतीकों को सही ढंग से लोड किया गया था, इसलिए मुझे पता था कि वास्तव में कहां देखना है। –

1

Luke Stackwalker आशाजनक प्रतीत होता है - यह उतना पॉलिश नहीं है जितना मैं चाहता हूं, लेकिन यह खुला स्रोत है और यह ऐसा कुछ करता है जो @ माइक डनलवेवी कहता है कि हमें क्या करना चाहिए। (बेशक, यह आम तौर पर आम तौर पर असहनीय कॉल ग्राफ में इसे कम करने की कोशिश करता है कि माइक बहुत थके हुए हैं, लेकिन स्रोत के साथ हमारे सहयोगी के रूप में इसे ठीक करना मुश्किल नहीं होना चाहिए।)

यह यहां तक ​​कि कर्नेल में प्रतीक्षा करने में भी समय लगता है, जहां तक ​​मैं कह सकता हूं ...

+0

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

+0

संभावनाएं हैं कि उन्होंने नमूनों को फेंक दिया है, उन्होंने सोचा कि वे बहुत अधिक भंडारण करेंगे। आप इसका जवाब जानते हैं। समस्याओं को खोजने के लिए केवल कुछ ही नमूने की आवश्यकता है, खासकर यदि आप मैन्युअल रूप से नमूनाकरण को नियंत्रित कर सकते हैं। नमूने की एक बड़ी संख्या आपको अधिक माप सटीकता देता है, जिसकी आपको आवश्यकता नहीं है। –

+0

@ माइक: हम्म, यह सोचने से भी बदतर लगता है कि मैं सोच रहा था (मैं, जाहिर है, याद नहीं कर सकता कि मैं वास्तव में * उस समय सोच रहा था ;-)। फिर भी ... यह हैलो वर्ल्ड है, वांछित उपकरण के करीब एक बहुत भयानक लग रहा था। – SamB

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