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

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

แสดงผลใน ChromeOS

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

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

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

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

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

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

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

ตั้งค่าโปรแกรมวิเคราะห์

หากต้องการใช้เครื่องมือวิเคราะห์ คุณต้องใช้งาน 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 เพื่อซูมเข้าและออกไทม์ไลน์