"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > आप अपने गो प्रोग्राम में गोरआउट्स की संख्या को प्रोफाइल करने के लिए pprof का उपयोग कैसे करते हैं?

आप अपने गो प्रोग्राम में गोरआउट्स की संख्या को प्रोफाइल करने के लिए pprof का उपयोग कैसे करते हैं?

2024-11-06 को प्रकाशित
ब्राउज़ करें:250

How do you use pprof to profile the number of goroutines in your Go program?

pprof के साथ गोरोइन की संख्या की प्रोफाइलिंग

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

गोरआउटिन की संख्या को प्रभावी ढंग से प्रोफाइल करने के लिए, अपने ब्राउज़र में http://localhost:8888/debug/pprof/ खोलें . यह दो प्रासंगिक लिंक प्रस्तुत करता है:

  • Goroutine: http://localhost:8888/debug/pprof/goroutine?debug=1
  • पूर्ण गोरोइन स्टैक डंप: http://localhost:8888/debug/pprof/goroutine?debug=2

Goroutine लिंक एकल के समान कोड साझा करने वाले गोरोइन को प्रदर्शित करता है प्रविष्टियाँ, उनकी गिनती सहित। उदाहरण के लिए:

1 @ 0x42f223 0x42f2e4 0x40542f 0x404f4b 0x4a0586 0x4600a1
#   0x4a0586    gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).startWorkers 0x56   /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:164

1 @ 0x42f223 0x43dfd7 0x43d532 0x4a04ed 0x4600a1
#   0x4a04ed    gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).processRunners 0x45d    /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:147

@ से पहले नंबर 1 प्रत्येक गोरोइन के एक उदाहरण को इंगित करता है।

पूर्ण गोरोइन स्टैक डंप रिसाव के लिए विशेष रूप से उपयोगी है पता लगाना. यह प्रत्येक गोरोइन को व्यक्तिगत रूप से सूचीबद्ध करता है, जिसमें उसका स्टैक ट्रेस और गतिविधि स्थिति शामिल है:

goroutine 49 [chan receive, 2 minutes]:
gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).startWorkers(0xc820103ee0, 0xc820274000, 0xc820274060, 0xc8201d65a0)
    /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:164  0x56
created by gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).Run
    /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:294  0x41b

goroutine 50 [select]:
gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).processRunners(0xc820103ee0, 0x0, 0xc820274060, 0xc8201d65a0)
    /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:147  0x45d
created by gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands.(*RunCommand).startWorkers
    /home/me/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/multi.go:165  0x96

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

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3