เพิ่มประสิทธิภาพโดยใช้เครื่องมือและ API ของ Unity

Unity มีเครื่องมือและ API ต่างๆ ที่เกี่ยวข้องกับประสิทธิภาพ ใช้เครื่องมือเหล่านี้เพื่อ วัดและตรวจสอบเมตริกประสิทธิภาพ ระบุอัตราการรีเฟรชจอแสดงผล และ วิเคราะห์วิธีเรนเดอร์ฉากทีละเฟรม

วัดและตรวจสอบเมตริกประสิทธิภาพ

แพ็กเกจ Unity OpenXR: Android XR ให้ข้อมูลประสิทธิภาพที่ครอบคลุม ซึ่งคุณสามารถใช้เพื่อตรวจสอบและเพิ่มประสิทธิภาพแอปได้

คุณเข้าถึงเมตริกเหล่านี้ได้ผ่าน Performance Metrics API

ประโยชน์

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

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

AndroidXRPerformanceMetrics androidXRPerformanceMetrics = OpenXRSettings.Instance.GetFeature<AndroidXRPerformanceMetrics>();

string values = "";

if (m_Display != null && androidXRPerformanceMetrics != null && androidXRPerformanceMetrics.supportedMetricPaths != null)
  foreach (var metric in androidXRPerformanceMetrics.supportedMetricPaths)
  {
    float stat;
    XRStats.TryGetStat(m_Display, metric, out stat);

    values += string.Format("{0}: {1:F2}\n", metric, stat);
  }

ระบุอัตราการรีเฟรชจอแสดงผล

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

ประโยชน์

  • ปรับอัตราการรีเฟรชตามความซับซ้อนของฉาก
  • เพิ่มประสิทธิภาพการใช้พลังงานในฉากที่สว่างกว่า
  • ปรับตามความต้องการของแอปแบบไดนามิก

เปิดใช้ฟีเจอร์นี้

ใช้ Unity API เพื่อเข้าถึงส่วนขยาย XR_FB_display_refresh_rate

คุณขออัตราเฟรม เช่น 72 FPS, 90 FPS หรือ 120 FPS ได้ จากนั้นระบบ จะเปลี่ยนไปใช้อัตราที่คุณขอ หากฮาร์ดแวร์รองรับและสภาวะ ความร้อนอนุญาต

เปิดใช้ Frame Debugger ของ Unity

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

ประโยชน์

  • ระบุคอขวดในการแสดงผลและการเรียกใช้การวาดที่ไม่คาดคิด
  • ตรวจสอบว่า SRP Batcher ทำงานได้อย่างถูกต้อง (มองหารายการ "RenderLoopNewBatcher")
  • ตรวจสอบการจัดกลุ่มการเรียกใช้ GPU Resident Drawer (มองหารายการ "Hybrid Batch Group" )
  • ทำความเข้าใจลำดับของการดำเนินการแสดงผล

เปิดใช้ฟีเจอร์นี้

  1. จากเมนูหลักของ Unity ให้คลิก Window > Analysis > Frame Debugger
  2. คลิกเปิดใช้เพื่อเริ่มบันทึกข้อมูลเฟรม
  3. ดูการเรียกใช้การวาดเพื่อดูว่ามีการแสดงผลอะไรและเมื่อใด