«نرخ فریم دهی در ثانیه» یا Frames per second (به اختصار FPS) راهی آسان برای اندازه گیری کارایی است، با این حال یک واحد دیگر به نام Frame Time یا «طول فریم» نیز وجود دارد که راه بهتری برای پی بردن به عملکرد گیمینگ و نواسانات آن است. در نوشتار پیش رو به معرفی Frame Time و تفاوت آن با FPS میپردازیم.
در صورتی که گیمر هستید پی بردن به ماهیت Frame Time که Frame Delay نیز نامیده می شود، میتواند برای شما سودمند باشد اما اگر توسعه دهنده هستید، محاسبه و بهکارگیری Frame Time میتواند در بهینه سازی ها به شما کمک کند. پیش از آنکه سراغ Frame Time برویم، نگاهی میاندازیم بر FPS و چرا ما به یک واحد دیگر نیاز داریم.
رابطه نرخ فریم دهی با طول فریم (Frame Delay)
همانطور که دانید FPS بیانگر تعداد فریمها در یک ثانیه است و هرچه که بالاتر باشد، معمولاً مطلوبتر است. اما مشکل آنجاست که FPS یک اندازه گیری خطی نیست و تحلیل تغییرات آن میتواند گمراه کننده باشد. همچنین یکی دیگر از مشکلات FPS قابل جمع زدن نبودن آن است، چراکه یک یکای خطی نیست.
نمودار بالا مقایسه FPS با Frame Time را نشان میدهد که به وضوح غیر خطی بودن FPS را نشان میدهد. اگر یک توسعه دهنده یا حتی تولید کننده محتوا باشید، شما نمیتوانید برای پی بردن به تأثیر تغییرات و بهینه سازی ها، FPS را جمع بزنید.
جدول بالا مقایسه اندازه گیری FPS سری A و B و Frame Time آنها را نشان میدهد. همانطور که مشاهده میکنید، FPS میتواند در مقادیر مختلف تغییر کند اما تغییرات Frame Time هر بار ثابت است. برای نمونه اگر نرخ فریم دهی از 100 فریم در ثانیه به 200 فریم در ثانیه برسد، تغییرات ما 100 فریم در ثانیه یا 5 میلی ثانیه است. اما اگر نرخ فریم دهی از 20 فریم در ثانیه به 22.2 فریم در ثانیه برسد، تغییرات ما 2.2 فریم در ثانیه و تغییر Frame Time همان 5 میلی ثانیه است.
به بیانی ساده Frame Time حاصل تقسیم ثانیه (1000 میلی ثانیه) بر نرخ فریم دهی است. ذات خطی Frame Time کار با آن و پی بردن به تغییرات را آسانتر میکند. به وضوح Frame Time پایین تر در اجرای بازی ها مطلوب تر است.
چگونه Frame Time را تفسیر کنیم؟
هنگامی که در بررسی یک بازی، کارت گرافیک و حتی پردازنده، نمودار Frame Time را مقابل خود میبینید، این نمودار شدت بروز کُندی (افزایش مدت زمان لازم برای رندر شدن فریمها) را نشان میدهد. در این دست از نمودارها، صاف بودن آن (خط راست) بهترین حالت ممکن است و نشان میدهد نرخ فریم دهی پایدار است. اما نوسان زیاد آن (برآمدگی و فرو رفتگی زیاد) میتواند نشان دهنده عملکرد نامطلوب در اجرای بازی باشد. البته وجود یک یا دو برآمدگی یا فرو رفتگی قابل چشم پوشی است و هنوز تجربه نهایی میتواند روان باشد.
احتمالاً با مشاهده نمودار بالا به خوبی متوجه اهمیت Frame Time شدهاید، در واقع نمیتوان صرفاً از روی پایین بودن کمینه نرخ فریم دهی یا Minimum-FPS در اجرای بازیها، به عملکرد ضعیف رسید، چراکه میتواند تنها برای لحظات کوتاهی باشد. اما نمودار Frame Time شدت آن را نشان میدهد. همچنین بیشینه نرخ فریم دهی یا Maximum-FPS نیز راه درستی برای قضاوت درباره کارایی نیست چراکه درست همانند کمینه نرخ فریم دهی میتواند صرفاً بازتاب دهنده عملکرد لحظه ای نادر باشد.
در صورتی که Frame Time نزدیک به 50 میلی ثانیه باشد، نرخ فریم دهی شما حدود 20 فریم در ثانیه است و مشکلاتی چون لگ زدن در اجرای بازیها را تجربه خواهید کرد. همچنین فریمهایی که مدت زمان لازم برای رندر شدن آنها از 50 میلی ثانیه فراتر میرود، با تأخیر و به کُندی نمایش داده میشوند که مشکلاتی چون لگ زدن را پدید میآورد.
لازم به ذکر است اگر Frame Time برابر با 16.7 میلی ثانیه باشد، نرخ فریم دهی بر روی 60 فریم در ثانیه قفل شده است، در این صورت دنبال غیر فعال کردن محدود کنندههایی چون Vsync باشید.
احتمالاً می گویید متوسط نرخ فریم دهی یا Average-FPS کار را آسان میکند و دیگر نیاز نیست با چنین جزئیاتی درگیر شوید، اما مشکل آنجاست که متوسط نرخ فریم دهی دو مقدار مهم کمینه و بیشینه نرخ فریم دهی را در خود حل میکند و آنها را از دست میدهید.
پیچیدگیهای به وجود آمده میتواند گیج کننده باشد، چراکه کمینه نرخ فریم دهی و یا افت نرخ فریم دهی میتواند برای مدت بسیار کوتاهی باشد که حتی گیمر متوجه آن نشود اما از آنجایی که برنامههای شمارنده نرخ فریم دهی آن را ثبت میکنند، ممکن است به اشتباه تفسیر شود. خوشبختانه یک راه حل برای این مشکل نیز وجود دارد و آن استفاده از صدک ها (Percentile) است. نمودار بالا بیشینه Frame Time در صدک های مختلف نشان می دهد. در واقع برای تهیه نمودار صدک ها، مقادیر Frame Time به صورت صعودی مرتب می شود.
این نمودارها معمولاً با هدف جلوگیری از تفسیر غلط نتایج تهیه میشوند که میتواند صدک هایی چون 99 ام، 97 ام و 95 ام را نشان دهد. صدک 99 ام که رایجتر است، به این معنی است که 99 درصد فریمها با نرخ فریم دهی بهتر از مقدار آن نمایش داده میشوند. در نمودار بالا صدک 99 ام کارت گرافیک GTX 1070 Ti انویدیا 11.4 میلی ثانیه بوده و به این معنی است که 99 درصد فریمها در زمان کمتر از 11.2 میلی ثانیه رندر میشوند، به عبارتی دیگر؛ در 99 درصد مواقع نرخ فریم دهی بیشتر از 87 فریم در ثانیه خواهد بود.
از این پس در تحلیل نتیجه بنچمارک ها افزون بر نرخ فریم دهی، به پایداری فریم دهی نیز توجه کنید، نه تنها نرخ فریم دهی بالاتر بهتر است، بلکه پایداری نرخ فریم دهی نیز از اهمیت بالایی برخوردار است. همچنین احتمالاً با ما هم نظر هستید که صرفاً نمی توان از روی کمینه نرخ فریم دهی درباره یک بازی، کارت گرافیک یا حتی پردازنده نتیجه گیری کرد.
نظر خود را اضافه کنید.
برای ارسال نظر وارد شوید
ارسال نظر بدون عضویت در سایت