Go Academy · पाठ

pprof से CPU प्रोफ़ाइलिंग

CPU प्रोफ़ाइल एकत्र करना और दृश्य रूप में देखना

पाठ 2, कुल 4 में से13 चरण

pprof से CPU प्रोफ़ाइलिंग, CoddyKit पर Go Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Go Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

pprof क्या है

net/http/pprof और runtime/pprof पैकेज प्रोफ़ाइलिंग डेटा उपलब्ध कराते हैं, जो दिखाता है कि आपका प्रोग्राम CPU समय कहाँ खर्च करता है। go tool pprof CLI प्रोफ़ाइलों का विश्लेषण करता है।

HTTP pprof एंडपॉइंट

किसी मौजूदा HTTP सर्वर पर /debug/pprof/ के अंतर्गत प्रोफ़ाइलिंग एंडपॉइंट पंजीकृत करने के लिए _ "net/http/pprof" इम्पोर्ट करें।

import _ "net/http/pprof"

go func() {
    log.Println(http.ListenAndServe(":6060", nil))
}()

CPU प्रोफ़ाइल कैप्चर करना

HTTP एंडपॉइंट के ज़रिए 30 सेकंड की CPU प्रोफ़ाइल कैप्चर करें:

go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30

फ़ाइल-आधारित CPU प्रोफ़ाइलिंग

HTTP सर्वर के बिना प्रोग्राम के लिए प्रोफ़ाइल फ़ाइल में लिखने हेतु runtime/pprof का इस्तेमाल करें:

f, _ := os.Create("cpu.prof")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// run workload

परीक्षणों में प्रोफ़ाइलिंग

यथार्थपरक परीक्षण लोड के तहत प्रोफ़ाइल बनाने के लिए -cpuprofile और -memprofile फ़्लैग के साथ परीक्षण चलाएँ:

go test -cpuprofile cpu.prof -memprofile mem.prof -bench=. ./...

go tool pprof का इंटरैक्टिव मोड

प्रोफ़ाइल खोलें और इंटरैक्टिव कमांड के साथ उसका अन्वेषण करें:

go tool pprof cpu.prof
(pprof) top        # top functions by CPU time
(pprof) list main  # annotated source
(pprof) web        # call graph in browser

फ़्लेम ग्राफ़

इंटरैक्टिव वेब UI के लिए -http=:8080 के साथ फ़्लेम ग्राफ़ बनाएँ (इसके लिए graphviz आवश्यक है):

go tool pprof -http=:8080 cpu.prof

top आउटपुट की व्याख्या

top फ़ंक्शन को उनके स्वयं के समय (उस फ़ंक्शन में लगा समय) और संचयी समय (कॉल किए गए फ़ंक्शन सहित) के अनुसार क्रमबद्ध करके दिखाता है। सीधे अनुकूलन के अवसरों के लिए अधिक स्वयं का समय लेने वाले फ़ंक्शन पर ध्यान दें।

गोरूटीन प्रोफ़ाइल

/debug/pprof/goroutine एंडपॉइंट सभी गोरूटीन के स्टैक ट्रेस दिखाता है। इसका इस्तेमाल गोरूटीन लीक या अवरुद्ध गोरूटीन का पता लगाने के लिए करें।

go tool pprof http://localhost:6060/debug/pprof/goroutine

निरंतर प्रोफ़ाइलिंग

प्रोडक्शन सिस्टम के लिए, सेवा को रोके बिना प्रोफ़ाइल कैप्चर करने हेतु निरंतर प्रोफ़ाइलिंग सेवाओं (Pyroscope, Datadog, Google Cloud Profiler) का इस्तेमाल करें।

CI में pprof

प्रदर्शन में आई गिरावट का पता लगाने के लिए अपने कोड के दो संस्करणों की प्रोफ़ाइल की तुलना करें, इससे पहले कि वे प्रोडक्शन तक पहुँचें।

त्वरित जाँच

pprof top आउटपुट में "self" कॉलम क्या दर्शाता है?

पुनरावलोकन: pprof के साथ CPU प्रोफ़ाइलिंग

मुख्य बातें:

  • HTTP एंडपॉइंट के लिए net/http/pprof; फ़ाइल के लिए runtime/pprof इम्पोर्ट करें
  • फ़्लेम ग्राफ़ UI के लिए go tool pprof -http=:8080
  • top: स्वयं का समय = सीधी लागत; संचयी = कॉल किए गए फ़ंक्शन सहित कुल लागत
  • बेंचमार्क प्रोफ़ाइलिंग के लिए go test -cpuprofile
शुरुआत निःशुल्क

एआई शिक्षक के साथ Go सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “pprof से CPU प्रोफ़ाइलिंग” पाठ निःशुल्क है?

हाँ — Go Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “pprof से CPU प्रोफ़ाइलिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“pprof से CPU प्रोफ़ाइलिंग” में मैं क्या सीखूँगा?

CPU प्रोफ़ाइल एकत्र करना और दृश्य रूप में देखना आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Go Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Go Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Go Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“pprof से CPU प्रोफ़ाइलिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Go Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Go Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. testing.B से बेंचमार्क लिखना
  2. pprof से CPU प्रोफ़ाइलिंग
  3. हीप और आवंटन प्रोफ़ाइलिंग
  4. निष्पादन ट्रेसिंग
← Go Academy पर वापस जाएँ