ประกาศเกี่ยวกับช่วงทดลองใช้ Compute Pressure ครั้งที่ 2 จากต้นทาง

Kenneth Christiansen
Kenneth Christiansen
Arnaud (Arno) Mandy

ในช่วงปีที่ผ่านมา Intel ได้ทำงานร่วมกับ Google และบริษัทอื่นๆ เกี่ยวกับ Compute Pressure API ใน Chrome 115 คุณสามารถลงทะเบียนสำหรับช่วงทดลองใช้จากต้นทางเพื่อช่วยทดสอบ API ใหม่นี้ โดยโพสต์นี้จะอธิบายปัญหาที่ API ได้รับการออกแบบมาเพื่อแก้ปัญหา และแสดงวิธีใช้

ปัญหา

เว็บได้กลายเป็นแพลตฟอร์มแอปพลิเคชันที่สำคัญด้วยความสามารถใหม่ๆ ที่ทำให้แอปพลิเคชัน เช่น การประชุมทางวิดีโอ ไม่เพียงทำได้ แต่ยังมอบประสบการณ์ที่น่าประทับใจสำหรับผู้ใช้ด้วย ประสบการณ์แบบเว็บจะโหลดขึ้นมาทันที เข้าถึงได้จากทุกที่ โดยไม่จำเป็นต้องติดตั้งล่วงหน้า

ผู้ใช้ต้องการแอปพลิเคชันที่โหลดได้เร็วและตอบสนองรวดเร็ว แถมยังอยากยืดอายุการใช้งานแบตเตอรี่ให้น้อยที่สุดเท่าที่จะเป็นไปได้ และอุปกรณ์ปิดเสียงที่ไม่ยอมสัมผัส ในบางครั้ง การสร้างประสบการณ์ขั้นสูงอาจเป็นเรื่องยาก เช่น การสร้างภาพเคลื่อนไหวที่ลื่นไหลและการเบลอวิดีโอพื้นหลังที่ใช้พลังงานมาก การผลักดันฮาร์ดแวร์ให้หมด และทำให้แบตเตอรี่หมดเร็ว

นอกจากนี้ ยังมีอุปกรณ์ต่างๆ มากมายที่ใช้ในการเข้าถึงเว็บแอปพลิเคชัน แล็ปท็อปที่มีอายุ 5 ปีจะมีความสามารถที่ต่างไปจาก คอมพิวเตอร์เดสก์ท็อปเครื่องใหม่ แม้ว่าจะใช้เบราว์เซอร์เวอร์ชันเดียวกันก็ตาม

นักพัฒนาซอฟต์แวร์มักจะเลือกพัฒนาให้เหมาะกับตัวส่วนร่วมต่ำที่สุด โดยหลีกเลี่ยงการใช้ฟีเจอร์บางอย่างที่เก็บภาษีสำหรับอุปกรณ์รุ่นเก่าหรือที่มีความสามารถน้อยกว่า อย่างไรก็ตาม หากคุณสามารถเพิ่มประสิทธิภาพประสบการณ์ของผู้ใช้ที่มีอุปกรณ์ความสามารถและอยู่ในสภาพแวดล้อมที่เหมาะสมที่จะได้รับประโยชน์จากประสบการณ์นั้น ก็ควรจะทำแบบนั้น เช่น เมื่อเข้าร่วมวิดีโอคอลจากโทรศัพท์ การเห็นลำโพงที่ใช้อยู่ก็น่าจะมอบประสบการณ์การใช้งานที่ดีที่สุด แต่บนเดสก์ท็อป คงจะดีไม่น้อยถ้าได้เห็นทุกคนในสาย และฮาร์ดแวร์มักจะเป็นหน้าที่ของเรา ในการดำเนินการนี้ คุณต้องใช้การวัดและส่งข้อมูลทางไกลของฮาร์ดแวร์แบบเรียลไทม์โดยไม่ส่งผลต่อความเป็นส่วนตัวของผู้ใช้ โดยสามารถใช้กำหนดเวลางานต่างๆ รวมทั้งเปิดและปิดฟีเจอร์อย่างต่อเนื่องได้ เพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ราบรื่น และ Compute Pressure API ก็ช่วยในเรื่องนี้ได้

Compute Pressure API คืออะไร

Compute Pressure API เสนอสถานะระดับสูงที่แสดงถึงแรงกดของระบบ สถานะระดับสูงเหล่านี้ช่วยรักษาสมดุลที่ดีระหว่างความเป็นส่วนตัว (ไม่แชร์ข้อมูลเฉพาะที่อาจระบุผู้ใช้ได้) และข้อมูลที่นักพัฒนาแอปให้เหตุผลได้ง่าย นอกจากนี้ การติดตั้งใช้งานยังทำให้ได้ใช้เมตริกฮาร์ดแวร์ที่สำคัญ เพื่อให้มั่นใจว่าผู้ใช้จะได้ใช้ประโยชน์จากพลังการประมวลผลที่มี ตราบใดที่ระบบไม่อยู่ใต้ความเครียดที่จะจัดการไม่ได้

ตัวอย่างเช่น CPU สมัยใหม่ออกแบบมาให้ทำงานได้อย่างดีโดยมีการใช้งาน 100% ในสถานการณ์ส่วนใหญ่ ไม่ว่าจะบนแกนเดียวหรือแกนทั้งหมด ดังนั้น API ที่ฮาร์ดโค้ดมีการใช้งาน 80% เนื่องจากมีความสำคัญอาจทำให้นักพัฒนาซอฟต์แวร์ใช้ความสามารถของฮาร์ดแวร์ได้ต่ำกว่าและมอบประสบการณ์ของผู้ใช้ที่ต่ำกว่ามาตรฐาน ในทางตรงกันข้าม ระบบอาจไม่ได้ทำความเย็นที่เหมาะสม หรืออุณหภูมิแวดล้อมอาจสูงมากเหมือนในช่วงฤดูร้อน และระบบอาจมีการควบคุมแม้แต่ก่อนที่มีการใช้งาน CPU ในระดับสูง API ปัจจุบันทำงานได้กับแรงดันของ CPU ทั่วโลก แต่เราวางแผนที่จะทดสอบการเปิดใช้งานแรงดันของ CPU ต่อหน้าในเทรดหลักและผู้ปฏิบัติงาน

ความดันในการประมวลผลมีสถานะต่อไปนี้

  • น้อย: ภาระงานในปัจจุบันทำให้มีแรงดันต่ำ ทำให้ระบบทำงานด้วยความถี่นาฬิกาที่ต่ำลงเพื่อประหยัดพลังงาน
  • พอใช้: ระบบทำงานเป็นปกติ ทุกอย่างเรียบร้อยดี และสามารถทำงานเพิ่มเติมได้โดยไม่มีปัญหา
  • จริงจัง: ระบบมีแรงกดดันรุนแรงอยู่บ้าง แต่ก็จัดการได้ และระบบก็ทำงานได้เป็นอย่างดี แต่ก็น่าจะใกล้ถึงขีดจำกัดแล้ว
    • ความเร็วของนาฬิกา (ขึ้นอยู่กับไฟ AC หรือ DC) สูงอย่างสม่ำเสมอ
    • ความร้อนสูงแต่ยังจัดการได้และไม่ก่อให้เกิดการควบคุม

เมื่อถึงขั้นนี้ ถ้าคุณเพิ่มงานเข้ามา ระบบอาจเข้าสู่สถานะวิกฤต

  • สำคัญ: ขณะนี้ระบบกำลังจะถึงขีดจำกัด แต่ยังไม่ถึงขีดจำกัด นี่ถือเป็นสิ่งสำคัญไม่ได้หมายความว่าระบบกำลังควบคุมอย่างต่อเนื่อง แต่สถานะนี้ไม่ยั่งยืนในระยะยาว และอาจส่งผลให้มีการควบคุมหากภาระงานยังคงเหมือนเดิม สัญญาณนี้เป็นคำสั่งสุดท้าย ที่เว็บแอปพลิเคชันจะช่วยแบ่งเบาภาระงาน

เปิดใช้ Compute Pressure API

โดยค่าเริ่มต้น Compute Pressure API ไม่ได้เปิดใช้ใน Chrome แต่สามารถทดสอบใน Chrome 115 ได้โดยเปิดใช้ฟังก์ชันการทำงานอย่างชัดเจน คุณเปิดใช้งานในเครื่องได้โดยการเปิดใช้แฟล็ก enable-experimental-web-platform-features

หากต้องการเปิดใช้กับผู้เข้าชมแอปทุกราย ขณะนี้ช่วงทดลองใช้จากต้นทางอยู่ระหว่างดำเนินการและตั้งค่าให้สิ้นสุดใน Chrome 118 ( 18 กรกฎาคม 2023) หากต้องการเข้าร่วมช่วงทดลองใช้ ให้ลงชื่อสมัครใช้และรวมองค์ประกอบเมตาที่มีโทเค็นทดลองจากต้นทางไว้ในส่วนหัว HTML หรือ HTTP ดูข้อมูลเพิ่มเติมได้ที่โพสต์เริ่มต้นใช้งานช่วงทดลองใช้จากต้นทาง

สังเกตแรงดันในการประมวลผล

ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีตรวจสอบและดำเนินการกับการเปลี่ยนแปลงของแรงกดดันในการประมวลผล

// 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');

ข้อมูลโค้ดต่อไปนี้จะแสดงวิธีใช้ Compute Pressure API จาก iframe

<iframe src="https://mysite.com/" allow="compute-pressure">
  <script>
    // Use Compute Pressure API.
  </script>
</iframe>

การรองรับแพลตฟอร์ม

Compute Pressure API พร้อมให้บริการใน Chrome 115 ใน Linux, ChromeOS, macOS และ Windows

ข้อมูลประชากร

ลองใช้การสาธิตที่ฝังอยู่ด้านล่างเพื่อดูว่าสถานะแรงดันในการประมวลผลเปลี่ยนไปอย่างไรตามแรงดันประดิษฐ์บางอย่าง

ในกรณีที่เบราว์เซอร์ไม่รองรับ API วิดีโอด้านล่างจะแสดงไฟล์บันทึกของเดโม

ความคิดเห็น

ความคิดเห็นของนักพัฒนาแอปสำคัญอย่างยิ่งในขั้นตอนนี้ ดังนั้นโปรดแจ้งปัญหาบน GitHub พร้อมคำแนะนำและคำถาม

ข้อความแสดงการยอมรับ

รูปภาพหลักนี้สร้างขึ้นโดย Robert Anasch ใน Unsplash บทความนี้ได้รับการตรวจสอบโดย Rachel Andrew และ Thomas Steiner