2010-03-12 7 views
5

मुझे फ़ंक्शन कॉल की जांच करने के लिए हमारे सिस्टम में लाइब्रेरी को gprof करने की आवश्यकता है और देखें कि क्या हम इसे और अनुकूलित कर सकते हैं या नहीं। मूल रूप से, मैं क्या हैgprof लाइब्रेरी - प्रश्न

निष्पादन एक का उपयोग करता है जो एक साझा लाइब्रेरी myLib.so

मैं myLib.so gprof करना चाहते हैं। जब मैं myLib.so स्रोत को संकलित करता हूं -जीपी विकल्प का उपयोग करके, यह एक .so फ़ाइल को ठीक बनाता है।

लेकिन, उस लाइब्रेरी के खिलाफ एक्जिक्यूटिव ए को पुन: संकलित करना किसी कारण से * .gmon फ़ाइल का उत्पादन नहीं कर रहा है। क्या किये जाने की आवश्यकता है? क्या मुझे अपनी लाइब को स्थिर रूप से लिंक करना चाहिए? यदि हां, तो कृपया मुझे बताएं कि कैसे। मैं एक नौसिखिया हूँ, इसलिए मेरी अज्ञानता क्षमा करें। मैं रोजाना सीख रहा हूं

अग्रिम धन्यवाद।

उत्तर

1

You can do better than gprof.

आप RotateRight/Zoom की तरह एक अच्छा नमूना प्रोफाइलर इस्तेमाल कर सकते हैं, या आप this technique की कोशिश कर सकते। lsstack अच्छी तरह से कार्य करता है। pstack भी करता है, लेकिन आपके लिए अधिक काम करता है।

+0

gprof विकल्प विषय अब http://archive.today/9r927 पर है। – dragosht

0

मेरे पास एक ही समस्या है, लेकिन मुझे लगता है कि एक छोटी सी सी/सी ++ प्रोग्राम बनाने के लिए सबसे अच्छी बात यह है कि लाइब्रेरी का उपयोग कुछ परीक्षण कॉल के साथ करता है, इसे लाइब्रेरी के साथ -जीपी और प्रोफाइल का संकलन करें। इस तरह आप पुस्तकालय के प्रोफाइलिंग मुद्दों को अन्य सामानों से भी अलग करते हैं।

http://sourceware.org/binutils/docs/gprof/Implementation.html और https://stackoverflow.com/a/7290284/885650 बताएं, आपको लिंक करते समय -पीजी की आवश्यकता है, क्योंकि यह हर जगह अतिरिक्त कोड जोड़ता है।