แก้ไขข้อบกพร่องของภาพเคลื่อนไหว

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

แสดงผลใน ChromeOS

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

จากนั้นโปรแกรมแสดงผลจะเริ่มแสดงผลเฟรมถัดไปไม่ได้ ซึ่งจะทำให้เกิดปัญหามากยิ่งขึ้น สถานการณ์นี้เป็นที่คุ้นเคยสำหรับนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่ Android เมื่อแอป ทํางานบน ChromeOS บริบทจะซับซ้อนยิ่งขึ้น

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

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

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

เครื่องมือติดตามกราฟิก ARC

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

UI ของเครื่องมือติดตามกราฟิก ARC ซึ่งแสดงไทม์ไลน์สำหรับกระบวนการของระบบ
รูปที่ 1 UI ของเครื่องมือติดตามกราฟิก ARC ซึ่งแสดงไทม์ไลน์สำหรับกระบวนการของระบบ

ตั้งค่าโปรไฟล์

หากต้องการใช้โปรไฟล์เลอร์ คุณต้องเรียกใช้ M75 ขึ้นไป ใช้อุปกรณ์ Intel เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด

ก่อนใช้โปรไฟล์เลอร์ ให้เริ่มต้นแอปด้วยการติดตาม เพิ่ม Trace.traceCounter(Trace.TRACE_TAG_GRAPHICS, "Event", <number>); ลงในโค้ด ในตำแหน่งที่ต้องการรวมการติดตาม ใช้ Event ที่ขึ้นต้นด้วย คำนำหน้า customTrace โดยคำนำหน้าจะไม่ปรากฏในข้อความการติดตาม

หากต้องการตั้งค่าโปรไฟล์ ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดโหมดนักพัฒนาซอฟต์แวร์
  2. เปิดการตั้งค่า Chrome แล้วเปิดใช้เครื่องมือการแสดงภาพบัฟเฟอร์กราฟิก ARC
  3. ไปที่ chrome://arc-graphics-tracing

เรียกใช้โปรไฟล์

  1. เลือกหยุดเมื่อเกิดข้อบกพร่อง
  2. เรียกใช้แอป Android
  3. เมื่อแอป Android ทำงานอยู่และมีโฟกัส ให้กด Control+Shift+G

เมื่อเกิดข้อบกพร่อง หน้าต่างเบราว์เซอร์จะปรากฏขึ้น ใช้แป้น W และ S เพื่อซูมเข้าและซูมออกไทม์ไลน์