ปัญหาที่ยากที่สุดอย่างหนึ่งสำหรับนักพัฒนาแอปคือการทำให้ภาพเคลื่อนไหวราบรื่น ไม่กระตุก และไม่มีจุดสะดุด ซึ่งจะแก้ไขได้ยากมากเมื่อระบบดําเนินการงานเบื้องหลังที่ต้องใช้ทรัพยากรมากด้วย ไม่มีการระบุง่ายๆ ว่าความกระตุกเกิดจากแอปหรือระบบ อย่างไรก็ตาม มีเครื่องมือโปรไฟล์ที่จะช่วยคุณระบุแหล่งที่มาที่เป็นไปได้ของลักษณะการทำงานที่ไม่ถูกต้อง
แสดงผลใน ChromeOS
แอปที่ได้รับการปรับแต่งอย่างละเอียด เช่น เกม มักจะใช้บัฟเฟอร์คู่เพื่อให้เวลาในการตอบสนองของผู้ใช้ต่ำที่สุด อย่างไรก็ตาม ยังมีอีกหลายอย่างที่อาจทําให้ประสิทธิภาพลดลง ตัวอย่างเช่น หากการแสดงผลเฟรมใช้เวลานานเกินไป ผลลัพธ์ที่แสดงผลจะไม่พร้อมสำหรับการสลับบัฟเฟอร์ถัดไป และเฟรมก่อนหน้าก็จะแสดงซ้ำ
จากนั้นโปรแกรมแสดงผลจะไม่สามารถเริ่มแสดงผลเฟรมถัดไปได้ ซึ่งจะทำให้เกิดปัญหามากขึ้น สถานการณ์นี้เป็นสิ่งที่นักพัฒนาแอป Android บนอุปกรณ์เคลื่อนที่คุ้นเคย เมื่อแอปทำงานบน ChromeOS บริบทจะซับซ้อนมากขึ้น
แอปที่ทำงานบนเดสก์ท็อปจะไม่แสดงผลในเฟรมการแสดงผลของหน้าจอโดยตรง แต่ระบบจะแสดงผลข้อมูลเป็นพื้นผิวแทน โดยปกติแล้วจะมีแอปหลายแอป ซึ่งแต่ละแอปจะแสดงผลกราฟิกเป็นพื้นผิว ระบบจะสร้างมุมมองบนหน้าจอโดยใช้โปรแกรมคอมโพสิเตอร์เพื่อรวมพื้นผิวทั้งหมดให้เป็นรูปภาพเดสก์ท็อปรูปเดียว
คอมโพสเซอร์จะทำงานอย่างมีประสิทธิภาพในเบื้องหลัง อย่างไรก็ตาม จะใช้การหน่วงเวลา 1 เฟรมเพื่อใช้ไปป์ไลน์ GPU ให้ได้สูงสุด ในทางทฤษฎีแล้ว คุณอาจไม่จําเป็นต้องใช้วิธีนี้ แต่วิธีนี้จะช่วยลดความผันผวนของประสิทธิภาพของระบบและช่วยปรับสมดุลการโหลดที่ไม่สมมาตร
เมื่อระบบปฏิบัติการทำงานอย่างหนัก GPU อาจทำงานหนักตามไปด้วย อาจมีเวลาหน่วงตั้งแต่เวลาที่เฟรมแสดงผลจนกว่าเฟรมจะปรากฏบนหน้าจอ ระบบอาจใช้บัฟเฟอร์ 4 ชั้นเพื่อชดเชย ทั้งนี้ขึ้นอยู่กับฮาร์ดแวร์ แม้ว่าจะมีการบัฟเฟอร์มากขึ้น แต่ไปป์ไลน์กราฟิกก็อาจยังกระตุกได้
เครื่องมือติดตามกราฟิก ARC
ChromeOS มีเครื่องมือโปรไฟล์ที่แสดงวิธีที่บัฟเฟอร์ทำงานในระบบ เมื่อมีการแลกเปลี่ยนหน่วยความจำ ระดับการทํางานของ CPU/GPU และแอปพลิเคชันของคุณกําลังทําอะไรอยู่ ณ เวลาหนึ่งๆ ดังที่แสดงในภาพต่อไปนี้
ตั้งค่าโปรแกรมวิเคราะห์
หากต้องการใช้เครื่องมือวิเคราะห์ คุณต้องใช้งาน M75 ขึ้นไป ใช้อุปกรณ์ Intel เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด
ก่อนใช้เครื่องมือวิเคราะห์ ให้สร้างข้อมูลเทมเพลตของแอปด้วยร่องรอย
เพิ่ม Trace.traceCounter(Trace.TRACE_TAG_GRAPHICS, "Event", <number>);
ลงในโค้ดตรงที่ต้องการใส่การติดตาม ใช้ Event
ที่ขึ้นต้นด้วยคำนำหน้า customTrace
โดยที่คำนำหน้าจะไม่ปรากฏในข้อความการติดตาม
หากต้องการตั้งค่าโปรแกรมวิเคราะห์ ให้ทำตามขั้นตอนต่อไปนี้
- เปิดโหมดนักพัฒนาซอฟต์แวร์
- เปิดการตั้งค่า Chrome และเปิดใช้เครื่องมือแสดงภาพบัฟเฟอร์กราฟิก ARC
- ไปที่
chrome://arc-graphics-tracing
เรียกใช้เครื่องมือวิเคราะห์
- เลือกหยุดเมื่อกระตุก
- เรียกใช้แอป Android
- เมื่อแอป Android ทำงานอยู่และมีโฟกัส ให้กด Control+Shift+G
เมื่อเกิดความกระตุก หน้าต่างเบราว์เซอร์จะปรากฏขึ้น ใช้แป้น W และ S เพื่อซูมเข้าและออกไทม์ไลน์