प्रोफाइल गो के साथ Pprof

Propha Ila Go Ke Satha Pprof



Linux ऑपरेटिंग सिस्टम में, GO इकोसिस्टम, GO प्रोग्राम में प्रदर्शन और तर्क संबंधी मुद्दों का निदान करने के लिए उपकरणों और SPI का एक बड़ा सूट प्रदान करता है। डायग्नोस्टिक समाधानों में से एक है गो प्रोफाइलिंग। GO प्रोफाइलिंग का कार्य लागत, मेमोरी उपयोग और प्रोग्राम के सबसे महंगे खंड का पता लगाने के लिए बार-बार होने वाले फ़ंक्शन कॉल के संदर्भ में एक GO प्रोग्राम का विश्लेषण करना है। यह पृष्ठ कुछ सेकंड में GO प्रोफाइलिंग करने के लिए pprof पैकेज के उपयोग को प्रदर्शित करता है। यहां, हम एक GO प्रोग्राम की रूपरेखा तैयार करने के लिए pprof फ़ंक्शन का पता लगाएंगे। चलो शुरू करें!

Linux में Pprof पैकेज क्या है?

लिनक्स ऑपरेटिंग सिस्टम में pprof पैकेज एक प्रोफाइलिंग टूल है जिसका उपयोग pprof विज़ुअलाइज़ेशन टूल की मदद से आवश्यक प्रारूप में रनटाइम प्रोफाइलिंग डेटा लिखने के लिए किया जाता है। यह रनटाइम प्रोफाइलिंग डेटा के लिए एक HTTP सर्वर के माध्यम से कार्य करता है, और इसे ज्यादातर अपने HTTP हैंडलर को पंजीकृत करने के दुष्प्रभावों के लिए आयात किया जाता है। pprof कमांड के सभी हैंडल पथ /debug/pprof/ से शुरू होते हैं और उसके बाद एक निश्चित कमांड आते हैं।

Ubuntu 22.04 सिस्टम में GO प्रोफाइलिंग के लिए Pprof पैकेज कैसे स्थापित करें

यदि आप चलते-फिरते प्रोफाइलिंग की एक त्वरित स्थापना प्रक्रिया की तलाश कर रहे हैं, लेकिन सब कुछ बोझिल है, तो आइए हम निम्नलिखित प्रक्रिया का पालन करें। आपको Ubuntu 22.04 सिस्टम में pprof स्थापित करने के लिए कुछ चरणों का पालन करने की आवश्यकता है। यहाँ वे चरण हैं:







सबसे पहले, हमें सभी निर्भरताओं को स्थापित करने की आवश्यकता है ताकि pprof पैकेज बंद न हो। सबसे पहले, निम्न आदेश के साथ ग्राफ़विज़ निर्भरता स्थापित करें:





रूट विशेषाधिकार देने के लिए 'सुडो' का उपयोग करना सुनिश्चित करें। अन्यथा, सिस्टम आपको कोई पैकेज स्थापित करने की अनुमति नहीं दे सकता है। निम्नलिखित आउटपुट देखें:







अब, सिस्टम के पास pprof पैकेज के लिए निर्भरताएँ हैं। यह आपको pprof पैकेज स्थापित करने की अनुमति देता है। GitHub से pprof प्राप्त करने के लिए 'go get' कमांड का उपयोग करें। यहाँ आदेश है:

यदि आपके पास 'गो' कमांड प्रीइंस्टॉल्ड नहीं है, तो इसका उपयोग करने के लिए आपको इसे विशेष रूप से इंस्टॉल करना होगा। हमारे सिस्टम में 'गो' कमांड स्थापित नहीं था, इसलिए हमें 'कमांड नहीं मिला' परिणाम मिला। निम्नलिखित आउटपुट देखें:

पहले 'गो' पैकेज स्थापित करें और फिर इसका उपयोग GitHub से pprof पैकेज प्राप्त करने के लिए करें। जैसा कि आप पिछले स्क्रीनशॉट में देख सकते हैं, हमारे पास 'गो' पैकेज स्थापित करने के लिए तीन अलग-अलग विकल्प हैं, इसलिए हम उनमें से किसी का भी उपयोग कर सकते हैं। सभी कुछ भिन्न विशेषताओं के साथ एक ही परिणाम देते हैं। हालाँकि, हम 'go' पैकेज संस्करण '2:1.18~0ubuntu2' को स्थापित करने के लिए 'sudo apt install golang-go' कमांड का उपयोग कर रहे हैं। निम्न आदेश निष्पादित करें:

यह आपको 'गो' पैकेज के साथ-साथ इसकी सभी निर्भरताओं और प्रासंगिक पुस्तकालयों को स्थापित करने की अनुमति देता है। निम्नलिखित आउटपुट देखें:

अब, GitHub रिपॉजिटरी में जाएं और pprof पैकेज इंस्टॉल करें। एक pprof पैकेज एक उपकरण है जिसका उपयोग प्रोफाइलिंग डेटा के विश्लेषण और विज़ुअलाइज़ेशन के लिए किया जाता है, लेकिन यह एक आधिकारिक Google उत्पाद नहीं है। यही कारण है कि आप GitHub रिपॉजिटरी का उपयोग कर सकते हैं और 'go' कमांड के साथ मैन्युअल रूप से pprof पैकेज स्थापित कर सकते हैं। सुनिश्चित करें कि 'गो इंस्टाल github.com/google/' आरंभ करने से पहले आपका सिस्टम पूर्वापेक्षाओं की सभी आवश्यकताओं को पूरा करता है [ईमेल सुरक्षित] ' आज्ञा। पूर्वापेक्षाएँ समर्थित संस्करण की 'गो' डेवलपमेंट किट और प्रोफाइल के ग्राफिक विज़ुअलाइज़ेशन को उत्पन्न करने के लिए एक ग्राफ़विज़ एप्लिकेशन हैं। ग्राफ़विज़ एप्लिकेशन वैकल्पिक है, इसलिए यदि आप चाहें तो इसे छोड़ सकते हैं। चूंकि हमने दोनों को स्थापित किया है और pprof पैकेज के लिए एक मंच तैयार किया है, हमारा सिस्टम इसे स्थापित करने के लिए तैयार है। आइए हम स्थापना प्रक्रिया शुरू करने के लिए GitHub रिपॉजिटरी तक पहुँच प्राप्त करें। निम्न आदेश देखें:

यह आदेश 'github.com/google/' पर जाता है [ईमेल सुरक्षित] ' पता। GitHub रिपॉजिटरी से pprof पैकेज इंस्टाल करें। निम्नलिखित परिणाम देखें:

'गो' कमांड ने पैकेज को डाउनलोड किया और यह उबंटू 22.04 सिस्टम में क्रमिक रूप से स्थापित है। बाइनरी डिफ़ॉल्ट रूप से $HOME/go/bin स्थान पर स्थापित है।

Pprof का मैनुअल पेज प्रदर्शित करें

अब, pprof पैकेज का विवरण प्राप्त करने के लिए pprof के मैन्युअल पृष्ठ की जाँच करें। मैनुअल पेज में प्रत्येक के संक्षिप्त विवरण के साथ pprof पैकेज के सभी विकल्प हैं। इससे आप pprof के प्रत्येक विकल्प को जान सकते हैं और आसानी से अपने कोड में उनका उपयोग कर सकते हैं। इसके अलावा, जब भी आपको आवश्यकता हो, आप -हेल्प फ्लैग का उपयोग करके मैन्युअल पृष्ठ पर वापस जा सकते हैं। यहां बताया गया है कि आप इसे कैसे कर सकते हैं:

यह आपके टर्मिनल पर पूरा मैनुअल पेज प्रदर्शित करता है। निम्नलिखित पर एक नजर डालें:

जैसा कि आप देख सकते हैं, pprof कमांड के लिए कई विकल्प उपलब्ध हैं। आवश्यक स्वरूपित प्रोफाइलिंग डेटा प्राप्त करने के लिए आप उनमें से किसी का भी उपयोग कर सकते हैं।

डेटा की रूपरेखा के लिए Pprof का उपयोग करें

अपने प्रोग्राम में pprof का उपयोग करने के लिए, पहले pprof पैकेज इंपोर्ट करें। pprof पैकेज आयात करने के लिए निम्न आदेश का उपयोग करें:

आयात शुरू करने से पहले, सुनिश्चित करें कि एप्लिकेशन पहले से ही एक HTTP सर्वर चला रहा है। यदि आपके पास कोई HTTP सर्वर एप्लिकेशन सर्वर नहीं चल रहा है, तो आपको आयात में 'नेट/http' और 'लॉग' जोड़कर शुरू करना चाहिए और निम्नलिखित कोड जोड़ना चाहिए:

अब, आप हीप प्रोफ़ाइल को देखने के लिए pprof कमांड का उपयोग कर सकते हैं। http://localhost के हीप प्रोफाइल की जांच के लिए निम्न कमांड का उपयोग किया जाता है:

यह प्रोफ़ाइल की तलाश शुरू करता है और http सर्वर से कनेक्ट करने का प्रयास करता है। निम्नलिखित प्रतिक्रिया देखें:

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

निष्कर्ष

यह मैनुअल Ubuntu 22.04 ऑपरेटिंग सिस्टम में उपयोग किए जाने वाले pprof कमांड का एक त्वरित पूर्वाभ्यास है। हमने पता लगाया कि Linux सिस्टम में pprof कमांड क्या है। और हमने सीखा कि इसे हमारे उबंटू 22.04 सिस्टम में कैसे स्थापित किया जाए। हमने Linux ऑपरेटिंग सिस्टम में pprof पैकेज के लिए उपलब्ध विकल्पों की विविधता के बारे में भी सीखा। pprof पैकेज का मूल कार्य एक HTTP सर्वर के माध्यम से रनटाइम प्रोफाइलिंग डेटा के लिए काम करना है, जबकि pprof विज़ुअलाइज़ेशन टूल के माध्यम से आवश्यक प्रारूप में प्रोफाइल डेटा प्रदान करना है। यह आपको केवल 30 सेकंड में GO को प्रोफाइल करने की अनुमति देता है।