gperftools documentation का कहना है कि libprofiler
लक्ष्य कार्यक्रम में जोड़ा जाना चाहिए।
और फिर कार्यक्रम एक विशिष्ट वातावरण चर के साथ चलाने की जानी चाहिए:
CPUPROFILE=/tmp/profiler_output ./a.out
सवाल यह है: कैसे libprofile
शुरू करने और एक प्रोफाइलर जब यह महज भरी हुई है खत्म करने के लिए एक मौका है, लेकिन अपने कार्यों बुलाया नहीं जाता है?
उस लाइब्रेरी में कोई कन्स्ट्रक्टर फ़ंक्शन नहीं है (proof)। लाइब्रेरी कोड में All occasions of "CPUPROFILE" किसी भी स्थान का संदर्भ नहीं देता है जहां प्रोफाइलर प्रारंभ होता है।
मैं विचारों से बाहर हूं, कहां देखना है?
हाय Appleman1234 (मेरा उत्तर gperftools के 2.0 संस्करण पर आधारित है), अपने जवाब के लिए धन्यवाद। हां, आपके द्वारा इंगित लाइन संख्याओं में CPUPROFILE पर्यावरण परिवर्तक के साथ कुछ करना है। लेकिन वे उस env चर के _absence_ की जांच करते हैं, उपस्थिति नहीं। इसका मतलब है कि प्रोफाइलर के लिंक के आधार पर सीपीयूप्रोफाइलर पहले से ही तत्काल हो चुका है।तो जुड़ाव (और उसके बाद कन्स्ट्रक्टर चेक करता है अगर चर प्रस्तुत करता है आदि)। और अभी भी ऐसी कोई जगह नहीं है! लाइब्रेरी लोडिंग पर प्रतिक्रिया दे सकते हैं, लेकिन यह नहीं है (मैंने ओपी पोस्ट में एक प्रोफेसर रखा है)। कोई भी विचार जहां (और कैसे/क्यों) CpuProfile को केवल एक लिंक के कारण तुरंत चालू किया जाता है? –
ओह ठीक है! यह बिल्कुल जगह है। संस्करण के लिए धन्यवाद, अंत में यह कुल स्पष्ट है। बहुत बहुत शुक्रिया। –