بهینه‌سازی عملکرد با استفاده از ابزارها و APIهای Unity

یونیتی ابزارها و APIهای مختلفی در رابطه با عملکرد ارائه می‌دهد. از این ابزارها برای اندازه‌گیری و نظارت بر معیارهای عملکرد، تعیین نرخ به‌روزرسانی نمایشگر و تجزیه و تحلیل نحوه رندر شدن صحنه به صورت فریم به فریم استفاده کنید.

اندازه‌گیری و پایش شاخص‌های عملکرد

پکیج Unity OpenXR: Android XR داده‌های جامعی از عملکرد را در اختیار شما قرار می‌دهد که می‌توانید برای نظارت و بهینه‌سازی برنامه خود از آنها استفاده کنید.

شما می‌توانید از طریق API معیارهای عملکرد به این معیارها دسترسی داشته باشید.

مزایا

  • نظارت بلادرنگ بر میزان استفاده از حافظه، عملکرد CPU و GPU.
  • آمار سیستم از لایه‌های آهنگساز و زمان اجرا.
  • تأثیر تغییرات بهینه‌سازی را اندازه‌گیری کنید.

برای گرفتن بهترین نتیجه، هنگام کار روی اپلیکیشن و تنظیم عملکرد، این معیارها را به‌طور فعال زیر نظر داشته باشید:

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);
  }

نرخ تازه‌سازی نمایشگر را مشخص کنید

نرخ تازه‌سازی نمایشگر به برنامه شما اجازه می‌دهد نرخ فریم بالاتر یا پایین‌تری را از زمان اجرا درخواست کند، که سیستم سعی می‌کند به آن احترام بگذارد.

مزایا

  • نرخ‌های به‌روزرسانی را بر اساس پیچیدگی صحنه تنظیم کنید.
  • بهینه‌سازی مصرف برق در صحنه‌های روشن‌تر.
  • به صورت پویا با خواسته‌های برنامه سازگار شوید.

فعال کردن این قابلیت

برای دسترسی به افزونه‌ی XR_FB_display_refresh_rate از API یونیتی استفاده کنید.

شما می‌توانید نرخ فریم‌هایی مانند ۷۲ فریم در ثانیه، ۹۰ فریم در ثانیه یا ۱۲۰ فریم در ثانیه را درخواست کنید و سپس اگر سخت‌افزار بتواند از پس آن برآید و شرایط حرارتی اجازه دهد، سیستم به نرخ درخواستی شما سوئیچ می‌کند.

فعال کردن اشکال‌زدای فریم یونیتی

اشکال‌زدای فریم (Frame Debugger) ابزار داخلی یونیتی برای تجزیه و تحلیل نحوه رندر شدن صحنه شما به صورت فریم به فریم است. این ابزار توالی فراخوانی‌های ترسیم (draw calls) را به شما نشان می‌دهد و به شما امکان می‌دهد تا برای درک رفتار رندر، آنها را گام به گام بررسی کنید.

مزایا

  • گلوگاه‌های رندر و خطاهای غیرمنتظره‌ی رندر را شناسایی کنید.
  • تأیید کنید که SRP Batcher به درستی کار می‌کند (به دنبال ورودی‌های "RenderLoopNewBatcher" باشید).
  • دسته‌بندی GPU Resident Drawer را بررسی کنید (به دنبال ورودی‌های «گروه دسته‌ای ترکیبی» باشید).
  • ترتیب عملیات رندرینگ را درک کنید.

فعال کردن این قابلیت

  1. از منوی اصلی یونیتی، روی Window > Analysis > Frame Debugger کلیک کنید.
  2. برای شروع ضبط داده‌های فریم، روی فعال کردن (Enable) کلیک کنید.
  3. برای دیدن اینکه چه چیزی و چه زمانی رندر می‌شود، مراحل فراخوانی‌های ترسیم را طی کنید.