मेरा सी ++ प्रोग्राम बहुत सी CPU का उपभोग कर रहा है, और जितना अधिक चलता है उतना ही। मैं CPU उपयोग प्रोफ़ाइल करने के लिए गूगल प्रदर्शन उपकरण का उपयोग किया और मैं क्या मिल गया है: केवल यहाँ दिखाया गया है 5 प्रक्रियाओं में से 1 एक वास्तविक समारोह का नाम हैGoogle परफ टूल में पते की व्याख्या कैसे करें CPU प्रोफाइलर
(pprof) top
Total: 1343 samples
1330 99.0% 99.0% 1330 99.0% 0x0000000801dcb11c
7 0.5% 99.6% 7 0.5% 0x0000000801dcb11e
4 0.3% 99.9% 4 0.3% program::threadWorker
1 0.1% 99.9% 1 0.1% 0x0000000801dcb110
1 0.1% 100.0% 1 0.1% 0x00007fffffffffc0
हालांकि,; बाकी पते हैं। मैं यह कैसे पता लगा सकता हूं कि ये पते क्या हैं?
संपादित करें (बेशक, मैं सबसे पहले पता ऊपर दिखाए में दिलचस्पी है): यह कैसे मैं प्रोफाइलर भाग गया है:
env CPUPROFILE=prof.out ./a.out
[kill program]
pprof ./a.out prof.out
इसके अलावा, मैं कोड निरीक्षण द्वारा मूल कारण मिल गया। लेकिन यह अभी भी अच्छा होगा कि प्रोफाइलर किसी पते के बजाय अपराधी कार्य को इंगित करे।
मैंने अपना प्रश्न संपादित करने के लिए संपादित किया कि मैं प्रोफाइलर कैसे चला गया। मुझे अपराधी कार्य मिला, जिसे एक ही फाइल में घोषित किया गया है, न कि साझा पुस्तकालय से। – jules
@jules: क्या प्रोफाइलर आपको अपराधी कार्य खोजने में मदद करता है? –
@ माइक डनलवेवी: नहीं, मुझे कोड निरीक्षण द्वारा मिला क्योंकि मेरा कार्यक्रम अपेक्षाकृत छोटा है। – jules