पिछले साल से, Intel, Compute Pressure API पर Google और अन्य पार्टियों के साथ मिलकर काम कर रहा है. Chrome 115 में, इस नए एपीआई को टेस्ट करने के लिए, ऑरिजिन ट्रायल के लिए रजिस्टर किया जा सकता है. इस पोस्ट में उन समस्याओं के बारे में बताया गया है जिन्हें हल करने के लिए एपीआई को डिज़ाइन किया गया है. साथ ही, इसका इस्तेमाल करने का तरीका भी बताया गया है.
समस्या
वेब, ऐप्लिकेशन का मुख्य प्लैटफ़ॉर्म बन रहा है. इसकी नई सुविधाओं की मदद से, वीडियो कॉन्फ़्रेंसिंग जैसे ऐप्लिकेशन न सिर्फ़ काम के हैं, बल्कि उपयोगकर्ताओं के लिए मज़ेदार भी हैं. वेब पर काम करने वाले ऐप्लिकेशन तुरंत लोड होते हैं. साथ ही, इन्हें कहीं से भी ऐक्सेस किया जा सकता है. इन ऐप्लिकेशन को पहले इंस्टॉल करने की ज़रूरत नहीं होती.
उपयोगकर्ताओं को तेज़ी से लोड होने वाले और रिस्पॉन्सिव ऐप्लिकेशन चाहिए. साथ ही, वे अपने डिवाइस की बैटरी को ज़्यादा से ज़्यादा समय तक इस्तेमाल करना चाहते हैं. साथ ही, वे ऐसे डिवाइस चाहते हैं जो काम करते समय ज़्यादा गर्म न हों और जिनकी आवाज़ कम हो. बेहतर अनुभव देने के लिए, इन चीज़ों को हासिल करना कभी-कभी मुश्किल हो सकता है. ऐसा इसलिए, क्योंकि स्मूद ऐनिमेशन और बैकग्राउंड वीडियो को धुंधला करने की सुविधा, प्रोसेसिंग पावर का ज़्यादा इस्तेमाल करती है. इससे हार्डवेयर पर ज़्यादा लोड पड़ता है और बैटरी की खपत होती है.
इसके अलावा, वेब ऐप्लिकेशन को ऐक्सेस करने के लिए, कई तरह के डिवाइसों का इस्तेमाल किया जा रहा है. पांच साल पुराने लैपटॉप और नए डेस्कटॉप कंप्यूटर में, एक जैसे ब्राउज़र वर्शन का इस्तेमाल करने पर भी बहुत फ़र्क़ होगा.
डेवलपर अक्सर, सबसे कम कॉमन डेनोमिनेटर के लिए ऐप्लिकेशन डेवलप करते हैं. साथ ही, वे ऐसी सुविधाओं का इस्तेमाल करने से बचते हैं जिनसे पुराने या कम क्षमता वाले डिवाइसों पर असर पड़े. हालांकि, अगर उन उपयोगकर्ताओं के लिए अनुभव को ऑप्टिमाइज़ किया जा सकता है जिनके पास ज़रूरी उपकरण हैं और वे इसका फ़ायदा पाने के लिए सही माहौल में हैं, तो ऐसा क्यों न किया जाए? उदाहरण के लिए, फ़ोन से वीडियो कॉल में शामिल होने पर, हो सकता है कि आपको सिर्फ़ मौजूदा स्पीकर को देखना बेहतर लगे. हालांकि, डेस्कटॉप पर कॉल में शामिल सभी लोगों को देखना अच्छा लगता है. आम तौर पर, हार्डवेयर भी इस काम के लिए सही होता है. ऐसा करने के लिए, आपको उपयोगकर्ताओं की निजता को बनाए रखते हुए, लाइव हार्डवेयर टेलीमेट्री की ज़रूरत होती है. इसका इस्तेमाल, टास्क शेड्यूल करने और उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, सुविधाओं को धीरे-धीरे चालू और बंद करने के लिए किया जा सकता है. ऐसे में, Compute Pressure API आपकी मदद कर सकता है.
Compute Pressure API क्या है?
Compute Pressure API, सिस्टम पर पड़ने वाले दबाव की जानकारी देने वाली हाई-लेवल की स्थितियां दिखाता है. ये हाई-लेवल स्टेटस, निजता और ऐसी जानकारी के बीच एक अच्छा संतुलन बनाते हैं जिससे डेवलपर आसानी से अनुमान लगा सकते हैं. निजता का मतलब है, ऐसी ज़्यादा जानकारी शेयर न करना जिससे उपयोगकर्ता की पहचान की जा सके. इसके अलावा, यह सुविधा, लागू करने के लिए सही हार्डवेयर मेट्रिक का इस्तेमाल करती है. इससे यह पक्का किया जा सकता है कि जब तक सिस्टम पर बहुत ज़्यादा लोड नहीं है, तब तक उपयोगकर्ता अपनी प्रोसेसिंग पावर का पूरा फ़ायदा ले सकें.
उदाहरण के लिए, आधुनिक सीपीयू को ज़्यादातर मामलों में, एक कोर या सभी कोर पर 100% इस्तेमाल करके ठीक से चलाने के लिए डिज़ाइन किया गया है. इसलिए, अगर कोई एपीआई 80% इस्तेमाल को ज़रूरी के तौर पर हार्डकोड करता है, तो हो सकता है कि डेवलपर हार्डवेयर की क्षमताओं का कम इस्तेमाल करें और उपयोगकर्ता को खराब अनुभव दें. दूसरी ओर, हो सकता है कि किसी सिस्टम में सही तरीके से कूलिंग न हो या गर्मी के मौसम में आस-पास का तापमान बहुत ज़्यादा हो. साथ ही, हो सकता है कि सीपीयू के ज़्यादा इस्तेमाल से पहले ही सिस्टम थ्रॉटल हो रहा हो. मौजूदा एपीआई, सीपीयू के ग्लोबल दबाव पर काम करता है. हालांकि, हमारा प्लान है कि हम मुख्य थ्रेड और वर्कर्स में हर पेज के लिए सीपीयू दबाव को चालू करने के साथ प्रयोग करें.
Compute pressure की ये स्थितियां होती हैं:
- सामान्य: मौजूदा वर्कलोड की वजह से, सिस्टम पर कम दबाव पड़ रहा है. इसलिए, बैटरी बचाने के लिए सिस्टम को कम क्लॉक फ़्रीक्वेंसी पर चलाया जा सकता है.
- अच्छा: सिस्टम ठीक से काम कर रहा है. इसमें कोई समस्या नहीं है और यह बिना किसी रुकावट के ज़्यादा काम कर सकता है.
- गंभीर: सिस्टम पर कुछ गंभीर दबाव है, लेकिन इसे मैनेज किया जा सकता है. सिस्टम ठीक से काम कर रहा है, लेकिन यह अपनी सीमाओं के करीब पहुंच सकता है:
- प्रोसेसिंग यूनिट की क्लॉक स्पीड (एसी या डीसी पावर के हिसाब से) लगातार ज़्यादा रहती है.
- डिवाइस का तापमान ज़्यादा है, लेकिन उसे मैनेज किया जा सकता है और इससे डिवाइस की परफ़ॉर्मेंस पर असर नहीं पड़ रहा है.
इस स्थिति में, अगर ज़्यादा काम जोड़ा जाता है, तो सिस्टम गंभीर स्थिति में आ सकता है.
- गंभीर: सिस्टम अब अपनी सीमाओं तक पहुंचने वाला है, लेकिन वह अब तक सीमाओं तक नहीं पहुंचा है. 'गंभीर' का मतलब यह नहीं है कि सिस्टम को सक्रिय रूप से कम किया जा रहा है. हालांकि, यह स्थिति लंबे समय तक नहीं बनी रह सकती. अगर वर्कलोड में कोई बदलाव नहीं होता है, तो हो सकता है कि सिस्टम को कम किया जाए. यह सिग्नल, वेब ऐप्लिकेशन के लिए आखिरी कॉल है, ताकि वह अपना वर्कलोड कम कर सके.
Compute Pressure API को चालू करना
Compute Pressure API, Chrome में डिफ़ॉल्ट रूप से चालू नहीं होता. हालांकि, इस सुविधा को साफ़ तौर पर चालू करके, 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 पर मौजूद जानकारी
- टैग की समीक्षा
- प्रयोग करने का मकसद
- Compute Pressure API का डेमो | Compute Pressure API का डेमो सोर्स
आभार
हीरो इमेज को रॉबर्ट अनाश ने Unsplash पर बनाया है. इस लेख की समीक्षा रेचल एंड्रयू और थॉमस स्टीनर ने की है.