2010-03-04 14 views
8

प्राप्त करने के लिए कॉलग्रिंड/केकेचेग्रींड का उपयोग करके मैं यह देखने में सक्षम होना चाहता हूं कि मेरे एप्लिकेशन में प्रत्येक थ्रेड कॉलगंड का उपयोग करके "महंगा" कैसे होता है। मैंने --separate-thread=yes विकल्प के साथ प्रोफाइल किया है जो आपको पूरे ऐप के लिए कॉलग्रिंड फ़ाइल देता है और फिर एक प्रति थ्रेड देता है।प्रति-थ्रेड आंकड़े

यह किसी भी दिए गए धागे की प्रोफ़ाइल देखने के लिए उपयोगी है, लेकिन जो मैं वास्तव में चाहता हूं वह प्रत्येक धागे से सीपीयू समय की एक क्रमबद्ध सूची है, इसलिए मैं देख सकता हूं कि कौन से धागे सबसे बड़े हॉग हैं।

उत्तर

3

वालग्रिंड/कॉलग्रींड इस व्यवहार की अनुमति नहीं देता है। न तो kcachegrind करता है, लेकिन मुझे लगता है कि यह एक अच्छा सुधार होगा। शायद कुछ जवाब उनकी मेलिंग सूची में पाए जा सकते हैं।

एक काम कर रहा है, लेकिन वास्तव तरह से उबाऊ विकल्प --separate-thread=no उपयोग करने के लिए, और प्रत्येक धागा एक अलग समारोह का नाम या वर्ग के नाम के लिए उपयोग करने के लिए अपना कोड अपडेट हो सकता है। आपके कोड जटिलता के आधार पर, यह जवाब हो सकता है (1computeData(), 2computeData(), ..)

+0

हाँ, यह वही निष्कर्ष है जो मैं पहुंचा हूं। मान लें कि ओपन सोर्स योगदान के लिए यह एक अच्छा विचार है! –

-2

एक ही समय में केकेचेग्रींड में एकाधिक प्रोफाइल खोलें।

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