2008-09-15 14 views
200

मैं अपने सी ++ कोड में बाधा को खोजने के लिए एक प्रोफाइलर की तलाश में हूं। मैं एक नि: शुल्क, गैर घुसपैठ करने वाला और अच्छा प्रोफाइलिंग टूल ढूंढना चाहता हूं। मैं एक गेम डेवलपर हूं, और मैं Xbox   360 के लिए PIX का उपयोग करता हूं और इसे बहुत अच्छा पाया, लेकिन यह मुफ़्त नहीं है। मैं इंटेल VTune जानता हूं, लेकिन यह या तो मुफ्त नहीं है।विंडोज के लिए सबसे अच्छा मुफ्त सी ++ प्रोफाइलर क्या है?

उत्तर

124

CodeXL अब लाइन के AMD Code Analyst के अंत का अधिग्रहण कर चुका है और दोनों स्वतंत्र हैं, लेकिन वीटीयूएन के रूप में उन्नत नहीं हैं। Sleepy भी है, जो बहुत आसान है, लेकिन कई मामलों में नौकरी करता है।

+4

यहाँ CodeAnalyst के लिए कड़ी है। एएसपीएक्स – epotter

+1

मैंने अब इसके साथ काम करने की कोशिश की, और इसे बिल्कुल पसंद नहीं आया। मैं यह भी समझ नहीं पाया कि फ़ंक्शन का कुल समय% (कैलीज़ समेत) कैसे प्राप्त करें, जो ट्रूटाइम 10 साल पहले ठीक कर सकता था। –

+0

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

1

मैं "TrueTime का उपयोग किया है -।। साल के लिए Compuware के DevPartner सुइट का भाग वहाँ एक [नि: शुल्क संस्करण] है (। आप Compuware DevPartner प्रदर्शन का विश्लेषण समुदाय संस्करण की कोशिश कर सकते) उपलब्ध

3

मैं AQTime उपयोग करें, यह एक है मैंने कभी भी सबसे अच्छा प्रोफाइलिंग टूल का उपयोग किया है। यह मुफ़्त नहीं है लेकिन आप 30 दिन का परीक्षण प्राप्त कर सकते हैं, इसलिए यदि आप केवल एक प्रोजेक्ट को अनुकूलित करने और प्रोफाइलिंग करने की योजना बना रहे हैं और 30 दिनों के लिए आपके लिए पर्याप्त हैं तो मैं उपयोग करने की सलाह दूंगा इस आवेदन। (http://www.automatedqa.com/downloads/aqtime/index.asp)

+0

केवल इस टूल ने मुझे आईआईएस पर रिलीज मोड मिश्रित (प्रबंधित और देशी) वेब एप्लिकेशन में संकलित प्रोफ़ाइल में मदद करने में मदद की। – Monsignor

+0

यह दुर्भाग्यपूर्ण है कि वे उन लोगों का समर्थन नहीं करते हैं जो अपने उत्पाद का मूल्यांकन करने का प्रयास करते हैं। –

+0

वर्तमान में वे सीमित कार्यक्षमता के साथ 14 दिन का परीक्षण कर रहे हैं। – Max

10

माइक्रोसॉफ्ट Windows Performance Toolkit

है

यह Windows   विस्टा, Windows Server 2008 या Windows   7.

+2

यह मुफ़्त नहीं है :( –

+4

यह कैसे मुफ़्त नहीं है? यह विंडोज एसडीके का एक हिस्सा है। मैं बिना किसी समस्या के इसे डाउनलोड करने में सक्षम था। (मान लीजिए, हमारे पास एक एमएसडीएन सदस्यता है, इसलिए कुछ लोगों के पास एक अलग अनुभव हो सकता है मैं करता हूं।) – epotter

+1

नि: शुल्क या नहीं, लिंक अब ठीक से काम नहीं करता है। –

0

मैं VSPerfMon का उपयोग जो स्टैंडअलोन दृश्य स्टूडियो प्रोफाइलर है की आवश्यकता है। मैंने इसे चलाने और परिणामों को देखने में मदद के लिए एक जीयूआई उपकरण लिखा था।

http://code.google.com/p/vsptree/

7

एक नया इसके अलावा Shiny है।

+3

डाउनलोड करने योग्य द्विआधारी, केवल स्रोत कोड नहीं मिल पा रहे हैं। बहुत सुविधाजनक नहीं। – Monsignor

57

Very Sleepy विंडोज सिस्टम (फ्री) के लिए एक सी/सी ++ सीपीयू प्रोफाइलर है।
CppCheck विंडोज सिस्टम (फ्री) के लिए एक स्थिर सी/सी ++ सीपीयू प्रोफाइलर है।

+19

googletest एक यूनिट परीक्षण ढांचा है। आप प्रोफाइलिंग करने के लिए इसका उपयोग कैसे करेंगे? – greatwolf

+0

यदि आप जीसीसी स्टैक से विंडोज बाइनरी का उपयोग कर रहे हैं, तो यह एक बढ़िया विकल्प है - एएमडी कोडएनलिस्ट विंडोज पर जीसीसी प्रतीकों को नहीं पहचानता है, लेकिन बहुत नींद आती है! – Mike

2

कृपया मेरे प्रोफाइलर को आजमाएं, जिसे cRunWatch कहा जाता है। यह केवल दो फाइलें हैं, इसलिए अपनी परियोजनाओं के साथ एकीकृत करना आसान है, और कोड के एक टुकड़े को उपकरण के लिए बिल्कुल एक पंक्ति जोड़ने की आवश्यकता है।

http://ravenspoint.wordpress.com/2010/06/16/timing/

बूस्ट पुस्तकालय की आवश्यकता है।

14

एमएस वीसी 7.1 के लिए एक उपकरण (फ़ंक्शन-सटीक) प्रोफाइलर है और इसे माइक्रोप्रोफाइलर कहा जाता है। You can get it here (x64) या here (x86)। यह को आपके कोड में किसी भी संशोधन या जोड़ों की आवश्यकता नहीं है और रीयल-टाइम में कॉलिंग और कैली के साथ फ़ंक्शन आंकड़े प्रदर्शित करने में सक्षम है, बिना किसी प्रक्रिया को बंद करने/प्रोफाइलिंग प्रक्रिया को रोकने के।

यह विजुअलस्टूडियो के साथ एकीकृत करता है, ताकि आप किसी प्रोजेक्ट के लिए आसानी से प्रोफाइलिंग सक्षम/अक्षम कर सकें। इसे क्लीन मशीन पर स्थापित करना भी संभव है, इसे केवल निष्पादन योग्य होने के साथ ही प्रतीकात्मक जानकारी की आवश्यकता होती है।

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

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

void f() 
{ 
    srand(time(0)); 

    vector<double> v(300000); 

    generate_n(v.begin(), v.size(), &random); 
    sort(v.begin(), v.end()); 
    sort(v.rbegin(), v.rend()); 
    sort(v.begin(), v.end()); 
    sort(v.rbegin(), v.rend()); 
} 
+0

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

+0

मैंने पाया कि नियमित रूप से बंद बटन से मेरा ऐप बंद करने के बाद, प्रोफाइलर विंडो नियमित रूप से भी बंद की जा सकती है। लेकिन जब मैं SHIFT + F5 शॉर्टकट द्वारा ऐप से बाहर निकलता हूं (वीएस कमांड डीबग करना बंद करें), प्रोफाइलर विंडो बंद बटन अक्षम है। –

+0

वीएस 2015 के साथ काम नहीं करता है। – rustyx

0

आप EmbeddedProfiler उपयोग कर सकते हैं, यह दोनों लिनक्स और के लिए नि: शुल्क है Windwos।

प्रोफाइलर घुसपैठ कर रहा है (कार्यक्षमता के द्वारा) लेकिन इसे किसी भी कोड संशोधन की आवश्यकता नहीं है। बस एक विशिष्ट कंपाइलर ध्वज जोड़ें (एमएसवीसी के लिए जीसीसी/मिनजीडब्ल्यू या/जीएच के लिए फ़िनस्ट्रुमेंट-फ़ंक्शनटियोस) और प्रोफाइलर की लाइब्रेरी को लिंक करें। यह आपको एक पूर्ण कॉल पेड़ या बस एक funciton सूची प्रदान कर सकते हैं। यह अपने स्वयं के विश्लेषक जीयूआई है।

5

मेरी सशक्त अनुशंसा Windows Performance Toolkit (WPT) या XPERF

कमांड लाइन xperf कमांड लाइन टूल रिकॉर्ड घटना विंडोज (ETW) लॉग जीयूआई xperfview उपकरण का उपयोग कर विश्लेषण किया जा सकता के लिए ट्रेसिंग।

stacktrace command line arguement का उपयोग करके मेरी कंपनी के लिए एक अमूल्य उपकरण साबित हुआ है क्योंकि यह प्रोफाइल और बाधाओं का निवारण करता है। सबसे आकर्षक चीजों में से एक यह है कि WPT को किसी भी पर्यावरण में भी आदरणीय विंडोज XP पर स्थापित किया जा सकता है।

विंडोज 8 विंडोज प्रदर्शन विश्लेषक xperf को एक उच्च स्तर तक ले जाता है।

ईटीडब्ल्यू लॉग में प्रदान की गई हार्ड नंबर और आंकड़े दृश्य स्टूडियो प्रोफाइलर (2010/2012) को छोड़कर विस्तार से अद्वितीय हैं जो कि बहुत अच्छा है लेकिन AFAIK निःशुल्क नहीं है।

आप xperf इस्तेमाल कभी नहीं किया है तो ... तुम नहीं जानते कि तुम क्या

+0

अच्छी तरह से मुझे पता है कि मुझे साइट पर वर्किंग यूआरएल गुम है। –

1

याद कर रहे हैं मैं Luke Stackwalker इस्तेमाल किया और यह मेरे दृश्य स्टूडियो परियोजना के लिए काम किया है।

अन्य रोचक परियोजनाओं हैं: http://developer.amd.com/CPU/CODEANALYST/Pages/default:

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