कंप्यूट प्रेशर ऑरिजिन ट्रायल के दूसरे चरण की सूचना

Kenneth Christiansen
Kenneth Christiansen
Arnaud (Arno) Mandy

पिछले साल से Intel, Compute Pressure API पर Google और दूसरे पक्षों के साथ मिलकर काम कर रहा है. Chrome 115 में, इस नए एपीआई को टेस्ट करने के लिए, ऑरिजिन ट्रायल के लिए रजिस्टर किया जा सकता है. इस पोस्ट में, एपीआई से जुड़ी समस्याओं को हल करने के बारे में बताया गया है और उसे इस्तेमाल करने का तरीका बताया गया है.

समस्या

वेब एक प्रमुख ऐप्लिकेशन प्लैटफ़ॉर्म बनता जा रहा है. इसमें नई सुविधाएं जोड़ी गई हैं, जिनसे वीडियो कॉन्फ़्रेंसिंग जैसे ऐप्लिकेशन न सिर्फ़ मुमकिन हो रहे हैं, बल्कि उपयोगकर्ताओं के लिए भी शानदार अनुभव दे रहे हैं. वेब-आधारित अनुभव तुरंत लोड होते हैं, इन्हें कहीं से भी ऐक्सेस किया जा सकता है और इन्हें किसी भी अप-फ़्रंट इंस्टॉलेशन की ज़रूरत नहीं होती.

उपयोगकर्ता तेज़ी से लोड होने वाले और रिस्पॉन्सिव ऐप्लिकेशन चाहते हैं. वे अपनी बैटरी और साइलेंट डिवाइसों को भी ज़्यादा से ज़्यादा समय तक चलाना चाहते हैं. कभी-कभी बेहतर अनुभव देते समय इन चीज़ों को हासिल करना मुश्किल हो सकता है. बेहतर अनुभव देने के लिए, बेहतरीन ऐनिमेशन और बैकग्राउंड में वीडियो धुंधला करने की सुविधा में बहुत ज़्यादा प्रोसेसिंग पावर का इस्तेमाल होता है. ऐसे में हार्डवेयर की क्षमता कम हो जाती है और डिवाइस की बैटरी तेज़ी से खर्च होती है.

इसके अलावा, वेब ऐप्लिकेशन को ऐक्सेस करने के लिए कई तरह के डिवाइस इस्तेमाल किए जा रहे हैं. पांच साल पुराने लैपटॉप में किसी नए डेस्कटॉप कंप्यूटर की तुलना में बहुत अलग-अलग क्षमताएं होंगी, भले ही ब्राउज़र के एक ही वर्शन पर चल रहा हो.

डेवलपर अक्सर सबसे कम डिनोमिनेटर (हर) के लिए डेवलप करना चुनते हैं. साथ ही, ऐसी सुविधाओं का इस्तेमाल करने से बचें जो ऐसे डिवाइसों पर लागू होती हैं जो पुराने या कम डिवाइस पर काम करते हों. हालांकि, अगर उन उपयोगकर्ताओं के अनुभव को ऑप्टिमाइज़ किया जा सकता है जिनके पास इसके लिए ज़रूरी उपकरण है और जो इसका फ़ायदा पाने के लिए सही माहौल में हैं, तो ऐसा क्यों नहीं किया जा सकता? उदाहरण के लिए, अपने फ़ोन से वीडियो कॉल में शामिल होने पर, सिर्फ़ मौजूदा स्पीकर को देखना सबसे अच्छा अनुभव होता है. हालांकि, डेस्कटॉप पर कॉल में शामिल सभी लोगों को देखना अच्छा होता है. आम तौर पर, हार्डवेयर पर निर्भर करता है. इसके लिए, आपको लाइव हार्डवेयर टेलीमेट्री की ज़रूरत होगी. इस दौरान, उपयोगकर्ताओं की निजता को कोई नुकसान नहीं होगा. इसका इस्तेमाल, टास्क शेड्यूल करने और सुविधाओं को धीरे-धीरे चालू और बंद करने के लिए किया जा सकता है, ताकि उपयोगकर्ताओं को बेहतर अनुभव मिल सके. यहां Compute प्रेशर एपीआई आपकी मदद कर सकता है.

Compute Pressure API क्या है?

Compute Pressure API, हाई-लेवल स्थितियां देता है, जो सिस्टम पर मौजूद दबाव को दिखाती हैं. ये उच्च-स्तरीय स्थितियां, निजता (उपयोगकर्ता की पहचान के लिए बहुत ज़्यादा खास जानकारी शेयर नहीं करना) और ऐसी जानकारी के बीच अच्छा संतुलन पक्का करती हैं जिनके बारे में डेवलपर आसानी से तर्क कर सकते हैं. इसके अलावा, इसकी मदद से पहले से मौजूद हार्डवेयर मेट्रिक का इस्तेमाल किया जा सकता है, ताकि यह पक्का किया जा सके कि उपयोगकर्ता अपनी ज़रूरत के मुताबिक उपलब्ध सभी प्रोसेसिंग पावर का तब तक फ़ायदा ले सकते हैं, जब तक कि सिस्टम के लिए परेशानी कम हो.

उदाहरण के लिए, मॉडर्न सीपीयू इस तरह डिज़ाइन किए जाते हैं कि वे ज़्यादातर स्थितियों में, एक कोर पर या सभी कोर पर बेहतर तरीके से काम कर सकें. ऐसे में, जिस एपीआई का 80% इस्तेमाल हार्डकोड होता है वह हार्डवेयर की क्षमताओं का कम इस्तेमाल कर सकता है. साथ ही, इससे उपयोगकर्ता को बेहतर अनुभव नहीं मिल सकता. वहीं दूसरी ओर, हो सकता है कि सिस्टम में ज़रूरत के हिसाब से कूलिंग न हो या आस-पास का तापमान गर्मियों में बहुत ज़्यादा हो. साथ ही, हो सकता है कि सीपीयू के ज़्यादा इस्तेमाल होने से पहले ही सिस्टम, थ्रॉटल हो जाए. मौजूदा एपीआई, ग्लोबल सीपीयू दबाव पर काम करता है. हालांकि, हमारी योजना है कि मुख्य थ्रेड और वर्कर के हिसाब से, हर पेज पर सीपीयू के दबाव को चालू करने की कोशिश की जाए.

कंप्यूट प्रेशर में ये स्थितियां होती हैं:

  • नॉमिनल: मौजूदा वर्कलोड कम से कम दबाव की वजह से काम कर रहे हैं. इस वजह से, सिस्टम कम फ़्रीक्वेंसी पर काम कर रहा है, ताकि बिजली बचाई जा सके.
  • सही: यह सिस्टम ठीक से काम कर रहा है. इसमें कोई समस्या नहीं है. साथ ही, इस पर किसी भी तरह की समस्या नहीं है.
  • गंभीर: सिस्टम पर कुछ हद तक गंभीर दबाव है, लेकिन इसे आसानी से मैनेज किया जा सकता है और सिस्टम ठीक से काम कर रहा है. हालांकि, ऐसा हो सकता है कि वह अपनी सीमाओं के करीब पहुंच जाए:
    • घड़ी की स्पीड (एसी या डीसी पावर के आधार पर) लगातार ज़्यादा है.
    • तापमान ज़्यादा होने के बावजूद, इसे मैनेज किया जा सकता है और इससे थ्रॉटलिंग नहीं की जा सकती.

इस स्थिति में, अगर और काम जोड़ा जाता है, तो सिस्टम गंभीर स्थिति में जा सकता है.

  • गंभीर: सिस्टम अब अपनी सीमाओं तक पहुंचने वाला है, लेकिन यह सीमा पूरी नहीं हुई है. गंभीर होने का मतलब यह नहीं है कि सिस्टम को ख़ास तौर पर थ्रॉटल किया जा रहा है. हालाँकि, यह स्थिति लंबे समय तक नहीं चल सकती. अगर वर्कलोड पहले जैसा ही रहता है, तो थ्रॉट किया जा सकता है. यह सिग्नल, वेब ऐप्लिकेशन के वर्कलोड को कम करने के लिए आखिरी कॉल है.

Compute Pressure API चालू करें

डिफ़ॉल्ट रूप से, Chrome में Compute Pressure 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 पर समस्याएं दर्ज करें.

स्वीकार हैं

हीरो इमेज को रॉबर्ट एनाश ने Unsplash पर बनाया था. इस लेख की समीक्षा रेचल एंड्रू और थॉमस स्टेनर ने की है.