हाई रिज़ॉल्यूशन टाइमर को WebPerf वर्किंग ग्रुप ने जोड़ा था. इससे वेब प्लैटफ़ॉर्म में +new Date
और नए Date.now()
की तुलना में ज़्यादा सटीक तरीके से मेज़रमेंट किया जा सकता है.
तुलना करने के लिए, यहां आपको मिलने वाली वैल्यू के टाइप दिए गए हैं:
Date.now() // 1337376068250
performance.now() // 20303.427000007
आपको ऊपर दी गई दो वैल्यू में काफ़ी अंतर दिखेगा. performance.now()
, फ़्लोटिंग पॉइंट के मिलीसेकंड में मेज़र की गई वैल्यू है. यह वैल्यू, उस पेज के लोड होने के बाद से performance.timing.[navigationStart](https://www.w3.org/TR/navigation-timing/#dom-performancetiming-navigationstart)
टाइमस्टैंप तक की होती है. आपके पास यह तर्क देने का विकल्प है कि यह यूनिक्स के टाइमपील के बाद के मिलीसेकंड की संख्या हो सकती है. हालांकि, किसी वेब ऐप्लिकेशन को 1970 और अब के बीच की दूरी जानने की ज़रूरत शायद ही कभी पड़ती है. यह संख्या पेज के हिसाब से बनी रहती है, क्योंकि आपको दो या उससे ज़्यादा मेज़रमेंट की तुलना एक-दूसरे से करनी होगी.
मोनोटोनिक टाइम
एक और फ़ायदा यह है कि समय एक जैसा रहता है. आइए, WebKit इंजीनियर टोनी जेंटिलकोर से इस बारे में जानें:
उपयोग के उदाहरण
कुछ स्थितियों में, आपको सामान्य टाइमस्टैंप के बजाय, ज़्यादा रिज़ॉल्यूशन वाले टाइमर का इस्तेमाल करना होगा:
- बेंचमार्किंग
- गेम या ऐनिमेशन का रनलूप कोड
- सटीक तरीके से फ़्रेम रेट का हिसाब लगाना
- ऐनिमेशन या समय के हिसाब से चलने वाले किसी अन्य क्रम में, खास पॉइंट पर कार्रवाइयां या ऑडियो चलाना
उपलब्धता
फ़िलहाल, हाई रिज़ॉल्यूशन वाला टाइमर, Chrome (स्टैबल) में window.performance.webkitNow()
के तौर पर उपलब्ध है. आम तौर पर, यह वैल्यू requestAnimationFrame कॉलबैक में पास की गई नई आर्ग्युमेंट वैल्यू के बराबर होती है. जल्द ही, WebKit अपना प्रीफ़िक्स हटा देगा और यह performance.now()
के ज़रिए उपलब्ध होगा. खास तौर पर, Microsoft के जतिंदर मान की अगुवाई वाली WebPerfWG ने अपनी सुविधाओं को तुरंत प्रीफ़िक्स हटाने में काफ़ी सफलता हासिल की है.
खास जानकारी में, performance.now()
...
- फ़्रैक्शनल में माइक्रोसेकंड वाला डबल
- यूनिक्स के बजाय, पेज के
navigationStart
के हिसाब से - सिस्टम के समय में बदलाव होने पर, डेटा में कोई बदलाव न हो
- यह सुविधा, Chrome के स्टैबल वर्शन, Firefox 15 और उसके बाद के वर्शन, और IE10 में उपलब्ध है.