पिछले साल से, Intel, Compute Pressure API पर Google और अन्य पार्टियों के साथ मिलकर काम कर रहा है. Chrome 115 में, इस नए एपीआई की जांच में मदद पाने के लिए, ऑरिजिन ट्रायल के लिए रजिस्टर किया जा सकता है. इस पोस्ट में बताया गया है कि एपीआई को किन समस्याओं को हल करने के लिए डिज़ाइन किया गया है. साथ ही, उसे इस्तेमाल करने का तरीका भी बताया गया है.
समस्या
वेब, ऐप्लिकेशन का मुख्य प्लैटफ़ॉर्म बन रहा है. इसकी नई सुविधाओं की मदद से, वीडियो कॉन्फ़्रेंसिंग जैसे ऐप्लिकेशन न सिर्फ़ काम के हैं, बल्कि उपयोगकर्ताओं के लिए एक बेहतरीन अनुभव भी हैं. वेब पर उपलब्ध अनुभव तुरंत लोड होते हैं. इन्हें कहीं से भी ऐक्सेस किया जा सकता है. साथ ही, इन्हें पहले इंस्टॉल करने की ज़रूरत नहीं होती.
उपयोगकर्ता तेज़ी से लोड होने वाले और रिस्पॉन्सिव ऐप्लिकेशन चाहते हैं. साथ ही, वे अपने डिवाइस की बैटरी लाइफ़ को ज़्यादा से ज़्यादा बढ़ाना चाहते हैं. साथ ही, वे ऐसे डिवाइस चाहते हैं जो काम करते समय ज़्यादा आवाज़ न करते हों और जिनका तापमान ज़्यादा न हो. कभी-कभी बेहतर अनुभव देने के दौरान भी इन चीज़ों को हासिल करना मुश्किल हो सकता है. बेहतरीन ऐनिमेशन और बैकग्राउंड वीडियो को धुंधला करने के लिए, बहुत सारी प्रोसेसिंग की ज़रूरत होती है. इससे हार्डवेयर की क्षमता कम हो जाती है और बैटरी तेज़ी से खर्च होती है.
इसके अलावा, वेब ऐप्लिकेशन को ऐक्सेस करने के लिए, कई तरह के डिवाइसों का इस्तेमाल किया जा रहा है. ब्राउज़र का एक जैसा वर्शन इस्तेमाल करने पर भी, पांच साल के लैपटॉप में बिलकुल नए डेस्कटॉप कंप्यूटर की तुलना में, अलग-अलग सुविधाएं होंगी.
डेवलपर अक्सर, सबसे कम कॉमन डेनोमिनेटर के लिए ऐप्लिकेशन डेवलप करते हैं. साथ ही, वे ऐसी सुविधाओं का इस्तेमाल करने से बचते हैं जिनसे पुराने या कम क्षमता वाले डिवाइसों पर असर पड़े. हालांकि, अगर उन उपयोगकर्ताओं के लिए अनुभव को ऑप्टिमाइज़ किया जा सकता है जिनके पास ज़रूरी उपकरण हैं और वे इसका फ़ायदा पाने के लिए सही माहौल में हैं, तो ऐसा क्यों न किया जाए? उदाहरण के लिए, अपने फ़ोन से वीडियो कॉल में शामिल होते समय, मौजूदा स्पीकर को देखकर ही यह सबसे अच्छा अनुभव हो सकता है. हालांकि, डेस्कटॉप पर कॉल पर सभी को देखना अच्छा होगा और हार्डवेयर आम तौर पर काम के हिसाब से होता है. इसके लिए, आपको हार्डवेयर की लाइव टेलीमेट्री की ज़रूरत होती है. इसमें, लोगों की निजता को गच्चा दिए बिना, उसका इस्तेमाल करके टास्क शेड्यूल किए जा सकते हैं. साथ ही, सुविधाओं को लगातार चालू और बंद किया जा सकता है, ताकि उपयोगकर्ताओं को बेहतर अनुभव मिले. ऐसे में, Compute Pressure API आपकी मदद कर सकता है.
Compute Pressure API क्या है?
Compute Pressure API, सिस्टम पर पड़ने वाले दबाव की जानकारी देने वाली हाई-लेवल की स्थितियां दिखाता है. ये हाई-लेवल स्टेटस, निजता और ऐसी जानकारी के बीच एक अच्छा संतुलन बनाते हैं जिससे डेवलपर आसानी से अनुमान लगा सकते हैं. निजता का मतलब है कि ऐसी ज़्यादा जानकारी शेयर न करना जिससे उपयोगकर्ता की पहचान की जा सके. साथ ही, इससे यह पक्का करने के लिए कि जब तक सिस्टम पर बहुत ज़्यादा दबाव न हो, तब तक उपयोगकर्ता अपनी प्रोसेसिंग पावर का पूरा फ़ायदा ले सकें, लागू करने के लिए सही हार्डवेयर मेट्रिक का इस्तेमाल किया जा सकता है.
उदाहरण के लिए, आधुनिक सीपीयू को ज़्यादातर मामलों में, एक कोर या सभी कोर पर 100% इस्तेमाल करने के लिए डिज़ाइन किया गया है. इसलिए, अगर कोई एपीआई 80% इस्तेमाल को ज़रूरी के तौर पर हार्डकोड करता है, तो हो सकता है कि डेवलपर हार्डवेयर की क्षमताओं का कम इस्तेमाल करें और उपयोगकर्ता को खराब अनुभव दें. दूसरी ओर, हो सकता है कि किसी सिस्टम में कूलिंग की सुविधा ठीक से काम न कर रही हो या गर्मी के मौसम में आस-पास का तापमान बहुत ज़्यादा हो. साथ ही, हो सकता है कि सीपीयू के ज़्यादा इस्तेमाल से पहले ही सिस्टम थ्रॉटल हो रहा हो. मौजूदा एपीआई, सीपीयू के लोड पर काम करता है. हालांकि, हमारा प्लान है कि हम मुख्य थ्रेड और वर्कर्स के लिए, हर पेज पर सीपीयू के लोड को चालू करने के बारे में एक्सपेरिमेंट करें.
Compute pressure की ये स्थितियां होती हैं:
- सामान्य: मौजूदा वर्कलोड की वजह से, सिस्टम पर कम दबाव पड़ रहा है. इसलिए, बैटरी बचाने के लिए सिस्टम को कम क्लॉक फ़्रीक्वेंसी पर चलाया जा सकता है.
- अच्छा: सिस्टम ठीक से काम कर रहा है. इसमें कोई समस्या नहीं है और यह बिना किसी रुकावट के ज़्यादा काम कर सकता है.
- गंभीर: सिस्टम पर कुछ गंभीर दबाव है, लेकिन इसे मैनेज किया जा सकता है. सिस्टम ठीक से काम कर रहा है, लेकिन यह अपनी सीमाओं के करीब पहुंच सकता है:
- क्लॉक स्पीड (एसी या डीसी पावर पर निर्भर करते हुए) लगातार उच्च रहती है.
- थर्मल ऊंचे हैं, लेकिन इन्हें मैनेज किया जा सकता है और इनकी वजह से थ्रॉटलिंग नहीं हो सकती.
इस स्थिति में, अगर सिस्टम में और काम जोड़ा जाता है, तो हो सकता है कि सिस्टम गंभीर स्थिति में पहुंच जाए.
- गंभीर: सिस्टम अब अपनी सीमाओं तक पहुंचने वाला है, लेकिन वह अब तक सीमाओं तक नहीं पहुंचा है. क्रिटिकल का मतलब यह नहीं है कि सिस्टम को तेज़ी से थ्रॉटल किया जा रहा है. हालांकि, यह स्टेटस लंबे समय तक सही नहीं रहता. अगर वर्कलोड में भी बदलाव रहता है, तो इसे थ्रॉटल किया जा सकता है. यह सिग्नल, वेब ऐप्लिकेशन के लिए आखिरी कॉल है, ताकि वह अपना वर्कलोड कम कर सके.
Compute Pressure API को चालू करना
डिफ़ॉल्ट रूप से, Chrome में Compute Press API चालू नहीं होता. हालांकि, इस सुविधा को साफ़ तौर पर चालू करके, Chrome 115 में इसे आज़माया जा सकता है.
इसे स्थानीय तौर पर चालू करने के लिए, enable-experimental-web-platform-features
फ़्लैग को चालू करें.
आपके ऐप्लिकेशन पर आने वाले सभी लोगों के लिए इसे चालू करने के लिए, फ़िलहाल ऑरिजिन ट्रायल चल रहा है. यह ट्रायल, Chrome 118 ( 18 जुलाई, 2023) में खत्म होने वाला है. मुफ़्त में आज़माने की सुविधा का इस्तेमाल करने के लिए, साइन अप करें. साथ ही, एचटीएमएल या एचटीटीपी हेडर में, ऑरिजिन ट्रायल टोकन वाला मेटा एलिमेंट शामिल करें. ज़्यादा जानकारी के लिए, ऑरिजिन ट्रायल शुरू करना पोस्ट पढ़ें.
कंप्यूट प्रेशर को देखना
नीचे दिए गए कोड स्निपेट में, कंप्यूट प्रेशर में होने वाले बदलावों को मॉनिटर करने और उन पर कार्रवाई करने का तरीका बताया गया है:
// The `records` parameter is a sequence of records between two
// consecutive callbacks. Currently it contains ten entries, but
// this is an implementation detail.
function callback(records) {
const lastRecord = records.pop();
console.log(`Current pressure ${lastRecord.state}`);
if (lastRecord.state === 'critical') {
// Reduce workers load by 4.
} else if (lastRecord.state === 'serious') {
// Reduce workers load by 2.
} else {
// Do not reduce.
}
}
const observer = new PressureObserver(callback, {
// Sample rate in Hertz.
sampleRate: 1,
});
observer.observe('cpu');
यहां दिए गए कोड स्निपेट में, iframe से Compute Pressure API का इस्तेमाल करने का तरीका बताया गया है:
<iframe src="https://mysite.com/" allow="compute-pressure">
<script>
// Use Compute Pressure API.
</script>
</iframe>
प्लैटफ़ॉर्म सहायता
Compute Pressure API, Linux, ChromeOS, macOS, और Windows पर Chrome 115 में उपलब्ध है.
डेमो
नीचे दिए गए डेमो को आज़माकर देखें कि किसी कृत्रिम दबाव के आधार पर, कंप्यूट किए गए दबाव की स्थिति कैसे बदलती है.
अगर आपके ब्राउज़र में एपीआई काम नहीं करता है, तो नीचे दिए गए वीडियो में डेमो की रिकॉर्डिंग देखें.
सुझाव/राय दें या शिकायत करें
इस चरण में डेवलपर का सुझाव/राय देना या शिकायत करना, हमारे लिए बेहद ज़रूरी है. इसलिए, कृपया सुझावों और सवालों के साथ GitHub पर समस्याएं दर्ज करें.
काम के लिंक
- सार्वजनिक तौर पर जानकारी देने की सुविधा
- खास बातें
- Chromium ट्रैकिंग बग
- ChromeStatus.com एंट्री
- TAG की समीक्षा
- एक्सपेरिमेंट करने की इच्छा
- Compute Pressure API का डेमो | Compute Pressure API का डेमो सोर्स
धन्यवाद
हीरो इमेज को रॉबर्ट अनाश ने Unsplash पर बनाया है. इस लेख की समीक्षा रेचल एंड्रयू और थॉमस स्टाइनर ने की है.