मुझे पता है कि System.nanoTime()
अब System.currentTimeInMillis()
से अधिक समय मापने के लिए पसंदीदा तरीका है। पहला स्पष्ट कारण है नैनोटाइम() अधिक सटीक समय देता है और दूसरा कारण मैंने पढ़ा है कि बाद वाला सिस्टम की रीयल-टाइम घड़ी में समायोजन से प्रभावित होता है। "सिस्टम रीयल-टाइम घड़ी से प्रभावित होने" का क्या अर्थ है?System.currenTimeInMillis() बनाम System.nanoTime()
उत्तर
इस मामले मैं ब्लॉग पोस्ट अंश उपयोगी निम्नलिखित पाया है में:
आप पूर्ण समय मापने तो हमेशा
System.currentTimeMillis()
का उपयोग में रुचि रखते हैं। जागरूक उसके समाधान काफी मोटे हो सकता है कि हो सकता है (हालांकि यह शायद ही कभी पूर्ण समय के लिए एक मुद्दा है।)आप बीता हुआ समय की गणना मापने में रुचि रखते हैं /, तो हमेशा
System.nanoTime()
का उपयोग करें। अधिकांश प्रणालियों पर यह microseconds के क्रम पर संकल्प देगा। हालांकि सावधान रहें, यह कॉल कुछ प्लेटफ़ॉर्म पर निष्पादित करने के लिए माइक्रोसेकंड भी ले सकता है।
Clocks and Timers - General Overview डेविड होम्स द्वारा
System.currentTimeMillis()
के बाद से सिस्टम दिन घड़ी की समय पर निर्भर है, समय के लिए समायोजन आदेश समय पर रखने के लिए वैध हैं।
यहां समायोजन का क्या अर्थ है? उदाहरण के लिए लिनक्स से CLOCK_REALTIME
का विवरण पर एक नजर डालें:
प्रणाली चौड़ा घड़ी है कि वास्तविक (अर्थात, दीवार घड़ी) समय को मापता है। इस घड़ी को सेट करने के लिए उचित विशेषाधिकारों की आवश्यकता है। इस घड़ी प्रणाली समय में असंतत छलांग से प्रभावित है (जैसे, सिस्टम व्यवस्थापक मैन्युअल रूप से घड़ी को परिवर्तित करता है), और वृद्धिशील adjtime (3) और NTP द्वारा किया जाता समायोजन द्वारा।
System.nanoTime()
"दीवार ... यह विधि केवल बीता हुआ समय को मापने के लिए इस्तेमाल किया जा सकता है और सिस्टम या किसी भी अन्य धारणा से संबंधित नहीं है:
यह आपके द्वारा प्रदान किए गए लिंक से है "सापेक्ष-समय घड़ी को System.nanoTime() विधि द्वारा दर्शाया जाता है जो नैनोसेकंड में" फ्री-रनिंग "समय देता है।" इसे "फ्री-रनिंग" समय क्यों कहा जाता है? – Geek
@ गीक मैं * स्वतंत्र * के माध्यम से मुफ्त कहूंगा। पूर्ण समय ऑपरेटिंग सिस्टम द्वारा ट्रिगर किए गए इंटरप्ट पर निर्भर करता है। सापेक्ष * नि: शुल्क चलने वाला * समय उस से स्वतंत्र है, और जैसा कि जॉनी सैलोनन ने इंगित किया है, आंतरिक CPU घड़ी टाइमर से लिया गया है। –
"सिस्टम में आम तौर पर एक पूर्ण घड़ी (कम रिज़ॉल्यूशन के साथ समय-समय पर घड़ी) और एक सापेक्ष घड़ी (कुछ प्रकार का" उच्च-रिज़ॉल्यूशन "काउंटर होता है जिसमें से" मुक्त-चलने वाले "समय की गणना की जा सकती है) दिन की घड़ी के समय में कम रिज़ॉल्यूशन क्यों होता है और रिश्तेदार के पास उच्च रिज़ॉल्यूशन होता है? – Geek
बस तरीकों में से JavaDoc जाँच घड़ी का समय। ... "
System.currentTimeMillis()
" ... मिलीसेकेंड में वर्तमान समय देता है। ... "
तो आप देख सकते हैं कि System.currentTimeMillis()
का उपयोग कर माप के दौरान सिस्टम समय बदलता है, तो आप जिस अंतराल को मापते हैं वह भी बदल जाएगा। हालांकि, System.nanoTime()
विधि का उपयोग करके अंतराल को मापते समय यह नहीं बदलेगा।
इसका मतलब है कि System.currentTimeMillis()
रिटर्न का मूल्य मशीन की आंतरिक घड़ी से प्राप्त होता है। यदि एक sysadmin (या एनटीपी) समय बदलता है, उदाहरण के लिए यदि घड़ी 5 मिनट तेजी से चल रही है और sysadmin चला जाता है और इसे सुधारता है, System.currentTimeMillis()
प्रभावित होगा।इसका मतलब यह है कि आप मूल्य घटाने को भी देख सकते हैं, और यदि आप अंतराल को मापने के लिए इसका उपयोग करते हैं तो समय समाप्त हो सकता है। आप नकारात्मक समय माप सकते हैं।
System.nanoTime()
दूसरी तरफ कुछ आंतरिक CPU काउंटर/घड़ी से प्राप्त मूल्य लौटाता है। इस घड़ी द्वारा मापा गया समय किसी भी उपयोगकर्ता या कार्यक्रम द्वारा बदला नहीं जा सकता है। इसका मतलब है कि यह समय के लिए अधिक विश्वसनीय होगा। लेकिन सीपीयू घड़ी पावरऑफ पर रीसेट हो गई है, इसलिए यह वर्तमान "वॉल-घड़ी" समय खोजने के लिए उपयोगी नहीं है।
- 1. क्यों System.nanoTime() लेती है 4400 नैनो सेकंड
- 2. System.nanoTime() का उपयोग करके मुझे नकारात्मक समय बीतने का समय क्यों मिलता है?
- 3. बनाम बनाम
- 4. : बनाम बनाम ::
- 5. स्पाइडरमोन्की बनाम जावास्क्रिप्ट बनाम बनाम?
- 6. Mercurial: भ्रष्टाचार बनाम रिकॉर्ड बनाम qrecord बनाम शेल्व बनाम प्रत्यारोपण बनाम dirstate बनाम कतार
- 7. LINQ बनाम लैम्ब्डा बनाम अज्ञात तरीके बनाम बनाम
- 8. एनएचबीर्नेट एचक्यूएल बनाम मानदंड बनाम क्वेरीरी बनाम लिंक बनाम। प्रदर्शन
- 9. डीकोड और व्याख्या को बनाम बनाम बनाम बनाम
- 10. इनलाइन बनाम __inline बनाम __inline__ बनाम __forceinline बनाम?
- 11. एपीआई बनाम टूलकिट बनाम फ्रेमवर्क बनाम लाइब्रेरी
- 12. pymssql बनाम pyodbc बनाम adodbapi बनाम ...
- 13. एटमिकोस बनाम जेओटीएम बनाम बिट्रोनिक्स बनाम?
- 14. न्यूट बनाम एमबीयूनीट बनाम एमएसटीएस्ट बनाम xUnit.net
- 15. विधि बनाम फंक्शन बनाम प्रक्रिया बनाम कक्षा?
- 16. .NET बनाम एएसपी.नेट बनाम सीएलआर बनाम एएसपी
- 17. 'विधि' बनाम 'संदेश' बनाम 'फ़ंक्शन' बनाम '???'
- 18. अक्ष 2 बनाम वसंत-बनाम बनाम जर्सी
- 19. एसीई बनाम बूस्ट बनाम पोको बनाम WxWidgets
- 20. control.BeginInvoke() बनाम डिस्पैचर बनाम SynchronizationContext बनाम .. - विश्वसनीयता
- 21. ड्रॉप ... बनाम बनाम
- 22. रेल बनाम बनाम
- 23. _Expand बनाम बनाम जीएनयू
- 24. एफ़टीपी कमांड्स बनाम बनाम
- 25. गिट में बनाम बनाम
- 26. फ़ाइल बनाम ब्लॉक बनाम
- 27. क्रिस्टलस्पेस बनाम इरलिच बनाम .....?
- 28. एएसएसईआर बनाम एटलसैट बनाम
- 29. NetSqlAzMan बनाम AzMan बनाम (?????)
- 30. प्रतिनिधि बनाम बनाम। आईफोनओएस
मैं भी उत्सुक हूं। यदि आप डेलाइट बचत समय शिफ्ट के दौरान विलुप्त समय रिकॉर्ड करने के लिए 'currentTimeInMillis()' का उपयोग करने का प्रयास करते हैं तो क्या होगा? या वह इसका मतलब नहीं है? –
क्या 'currentTimeMillis' मापने की कोशिश करता है वह भौतिक घटना के रूप में समय का प्रवाह है। एक डीएसटी शिफ्ट समय क्षेत्र में परिवर्तन के समान होती है जब आप यात्रा करते हैं: यह केवल प्रभावित करता है कि समय और मिनटों में समय का प्रतिनिधित्व कैसे किया जाता है; समय खुद प्रभावित नहीं है। – Joni
'currentTimeMillis' उदा। डीएसटी, लेकिन यह उदास से प्रभावित है leapsconds और जैसे, 'नैनोटाइम' के विपरीत। –