गो में प्रोफाइलिंग फ़ंक्शन रनटाइम: एक सटीक विलंबित दृष्टिकोण
सॉफ़्टवेयर अनुकूलन के दायरे में, फ़ंक्शन निष्पादन समय को मापना मूल्यवान अंतर्दृष्टि प्रदान कर सकता है दक्षता में सुधार. गो, एक मजबूत प्रोग्रामिंग भाषा, कार्यों के समय निर्धारण और उनके रनटाइम को मिलीसेकंड में लौटाने के लिए एक सुविधाजनक तंत्र प्रदान करती है।
समय-मापित फ़ंक्शन
हमारे साहसिक कार्य को शुरू करने के लिए, आइए एक फ़ंक्शन तैयार करें जिसे हम प्रोफ़ाइल करना चाहते हैं। यह उदाहरण केवल एक निर्दिष्ट अवधि के लिए सोता है:
func SleepFor(d time.Duration) { time.Sleep(d) }
गो का डिफर एडवांटेज
गो का डिफर कीवर्ड इस प्रयास में महत्वपूर्ण साबित होता है। किसी फ़ंक्शन के निष्पादन को संलग्न फ़ंक्शन के बाहर निकलने तक स्थगित करके, हम फ़ंक्शन कॉल और उसके वास्तविक निष्पादन के बीच बीते समय को माप सकते हैं।
समय मापन कोड
आइए दो सहायक फ़ंक्शन पेश करें, जिन्हें उपयुक्त नाम ट्रेस और अन दिया गया है। ट्रेस फ़ंक्शन के प्रवेश बिंदु को लॉग करता है और शुरुआती समय को कैप्चर करता है, जबकि अन निकास बिंदु को लॉग करता है और सेकंड में बीता हुआ समय की गणना करता है। log.Println("START:", s) वापसी एस, समय.अब() } func un(s स्ट्रिंग, स्टार्टटाइम टाइम.टाइम) { समाप्ति समय := समय.अभी() log.Println(" END:", s, "बीता हुआ समय सेकंड में:", EndTime.Sub(startTime)) ) defer un(trace("SleepFor")) स्लीपफॉर(डी) ) समाप्त: प्रोफाइल स्लीप बीता हुआ समय सेकंड में: 0.50044
func trace(s string) (string, time.Time) { log.Println("START:", s) return s, time.Now() } func un(s string, startTime time.Time) { endTime := time.Now() log.Println(" END:", s, "ElapsedTime in seconds:", endTime.Sub(startTime)) }सटीकता संबंधी विचार
जबकि लॉग सटीक बीता हुआ समय प्रदान करते हैं, यह ध्यान देने योग्य है कि लॉगिंग स्टेटमेंट स्वयं थोड़ी सी अशुद्धि का परिचय देते हैं। यदि उच्च परिशुद्धता की आवश्यकता है, तो एक वैकल्पिक समय तंत्र पर विचार करें। यह शक्तिशाली तकनीक कोड प्रदर्शन में अंतर्दृष्टि सक्षम करती है, जिससे आपके अनुप्रयोगों की दक्षता में सुधार के लिए अनुकूलन का मार्ग प्रशस्त होता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3