गो में समय व्यतीत होने की गणना करने के लिए, आप इसका उपयोग कर सकते हैं
start := time.Now() // long time consuming task duration := time.Since(start)
लेकिन क्या आप जानते हैं कि गो में टाइम पैकेज में वास्तव में दो समय होते हैं, और समय। चूंकि() वास्तव में केवल प्रसंस्करण समय (मोनोटोनिक घड़ी) को मापता है, वास्तविक समय (दीवार घड़ी) को नहीं?
उदाहरण के लिए यदि कार्य काफी लंबा है, रात भर लंबा है, और आपका कंप्यूटर निष्क्रिय हो गया है। फिर सुबह, आप आ सकते हैं और देख सकते हैं कि अवधि केवल 4 घंटे थी जबकि कुल मिलाकर 10 घंटे बीत चुके थे।
गो में टाइम पैकेज बताता है कि
ऑपरेटिंग सिस्टम एक "दीवार घड़ी" दोनों प्रदान करते हैं, जो घड़ी सिंक्रनाइज़ेशन के लिए परिवर्तनों के अधीन है, और एक "मोनोटोनिक घड़ी", जो नहीं है। सामान्य नियम यह है कि दीवार घड़ी समय बताने के लिए होती है और मोनोटोनिक घड़ी समय मापने के लिए होती है।
हमारे उपरोक्त उदाहरण में यह वास्तव में आपको बताता है कि आपका प्रोग्राम सक्रिय रूप से 4 घंटे तक चला, लेकिन कंप्यूटर 6 घंटे तक सोता है, इसलिए कुल मिलाकर आपने 10 घंटे इंतजार किया। यदि कंप्यूटर बंद नहीं हुआ होता, तो यह 4 घंटे में हो जाता।
तो यदि आप दीवार का समय मापना चाहते हैं तो क्या करें? आप राउंड(0) फ़ंक्शन का उपयोग कर सकते हैं। t = t.Round(0) t में मोनोटोनिक घड़ी को हटा देगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3