بررسی پرفورمنس نرم افزار با PROFILER در یونیتی
بررسی پرفورمنس نرم افزار با PROFILER در یونیتی
موتور بازی یونیتی یکی از معروف ترین و بهترین موتورهای بازی میباشد که انواع بازی های دو بعدی، سه بعدی اندروید و iOS را میتوان به وسیله آن ساخت. یکی از مهمترین بخش های یک بازی، بهینه سازی آن است که باید به آن بسیار اهمیت داده شود زیرا یکی از مواردی است که باعث جذب بیشتر کاربران خواهد شد. یکی از تکنیک های بهینه سازی، profiling میباشد و به ابزارهایی که برای آن استفاده میکنند Profiler یا پروفایلر میگویند. در ادامه به این ابزارها اشاره شده است که چگونه کار میکنند.
ابزارهای عملکرد پروفایلر
ابزارهای مختلفی وجود دارد که به توسعه دهندگان این امکان را می دهد عملکرد یک برنامه را کنترل و تحلیل کنند. یونیتی، پروفایلر داخلی خود را دارد. این اطلاعات دقیق در مورد لود شدن CPU و میزان حافظه مصرف شده را فراهم می کند. علاوه بر این، جزئیات بیشتری در مورد CPU و میزان حافظه مصرف شده ی خط لوله (pipeline) رندر شده، شبیه سازی فیزیک و منابع صوتی موجود در صحنه، در دسترس است. Profiler اطلاعات مربوط به عملکرد برنامه شما را در مناطقی مانند CPU، حافظه، رندر و صدا جمع آوری و نمایش می دهد. همچنین می توانید مواردی مانند اینکه چگونه کد خود، دارایی ها (assets)، تنظیمات صحنه، رندر دوربین و تنظیمات ساخت روی عملکرد اپلیکیشن شما تأثیر می گذارد را به طور دقیق مشخص کنید. این نتایج را در مجموعه ای از نمودارها نشان می دهد، بنابراین می توانید مکان های افزایش عملکرد برنامه خود را تجسم کنید.
برای پروفایلینگ، ابزارهای مختلفی را در اختیار توسعه دهندگان Unity قرار داده است. Unity مجموعه ای از ابزارهای داخلی مانند CPU Profiler ، Memory Profiler و 5.3 Memory Analyzer جدید را در خود جای داده است. با این حال بهترین داده ها به طور کلی از ابزارهای خاص پلتفرمی حاصل میشود که شامل:
- برای iOS: ابزارها و اشکال زدای XCode Frame
- برای اندروید: پروفایلر Snapdragon
- برای پلتفرم هایی که CPU / GPU اینتل را اجرا می کنند: VTune و Intel GPA
- برای PS4: مجموعه Razor و VR Trace
- برای Xbox: ابزار Pix
این ابزارها به طور کلی بیشترین کاربرد را در پلتفرم هایی دارند که می توانند از IL2CPP برای تولید پروژه نسخه C ++ استفاده کنند. این نسخه های کد اصلی، پشتوانه های شفاف و روش زمان بندی با وضوح بالا را ارائه می دهند که هنگام اجرای تحت تسلط Mono، در دسترس نیستند.
کار با عملکرد پروفایلر یونیتی
پروفایلر Unity را می توان در ویرایشگر Unity در بخش “Window> Analysis> Profiler” یا با فشار دادن Ctrl + 7 پیدا کرد که از آن برای تجزیه و تحلیل عملکرد یا performance یک پروژه استفاده میشود. در نوار بالا یک دکمه “Record” وجود دارد که باید روی فعال تنظیم شود تا پروفایلر در واقع داده های عملکرد (performance) ردیابی کند. با باز شدن پنجره ، دکمه پخش را در ویرایشگر Unity فشار دهید تا برنامه شروع شود. هنگام اجرای اپلیکیشن، پنجره پروفایلر شروع به پر شدن با ارقام میکند. پنجره Profiler فقط داده های 300 فریم آخر را تجسم می کند. این تعداد را می توان در تنظیمات برگزیده Unity افزایش داد. پس از تولید اطلاعات جالب باید اجرای برنامه را متوقف کرد. در نوار بالای پروفایلر، گزینه ای برای ذخیره داده های ضبط شده در فرمت باینری نیز وجود دارد. به این ترتیب با بارگیری مجدد فایل ورودی تولید شده در پروفایلر، آن ها میتوانند دوباره مورد رسیدگی قرار بگیرند.
Unity Profiler ابزاری است که می توانید برای بدست آوردن اطلاعات عملکرد درباره اپلیکیشن خود از آن استفاده کنید. می توانید آن را به دستگاه های موجود در شبکه یا دستگاه های متصل به دستگاه خود متصل کنید تا نحوه اجرای برنامه را روی پلتفرم مورد نظر خود آزمایش کنید. هنگامی که در حال توسعه دادن اپلیکیشن خود هستید، همچنین میتوانید آن را در ویرایشگر اجرا کنید تا تا نمای کلی از تخصیص منابع را بدست آورید. این ابزار فرایند اجرا شدن بازی را به صورت گرافیکی نمایش میدهد.
به طور پیش فرضUnity عملکرد برنامه را در حالی که روی رایانه توسعه دهنده در حال اجراست ارزیابی می کند. از آنجا که به احتمال زیاد مشخصات سخت افزاری مشابه دستگاه مورد نظر را ندارد به عنوان مثال HoloLens درک دقیقی را از عملکرد اپلیکیشن توسعه یافته نخواهد داد. با این حال در حال حاضر برای پروفایل روی رایانه توسعه دهنده سودمند است که تحلیل و آنالیز کند که کدام یک از اجزای سازنده (components) از نظر محاسباتی گران هستند.
معیارهای عملکرد (performance)
نظارت و بهینه سازی عملکرد یکسری بازی ها و اپلیکیشن ها، برای اطمینان از یک تجربه کاربری رضایتمند، بسیار مهم هستند. جدا از تجربه ذهنی بازی یا اپلیکیشن، یک برنامه بهینه سازی نشده همچنین می تواند بر عملکرد کاربر تأثیر بگذارد.
هنگام گفتگو درباره عملکرد (performance)، یادآوری این نکته ضروری است که تمام تلاش های بهینه سازی باید با یک فرآیند کشف شروع شوند. پروفایلینگ یک برنامه برای کشف نقاط مهم (hotspots) آن اولین قدم ضروری است و به دنبال آن تجزیه و تحلیل نتایج حاصل از پروفایلینگ در برابر پروژه فنی و معماری دارایی (asset) میباشد.
اندازه گیری عملکرد (performance) با پروفایلر داخلی
Unity شامل یک پروفایل داخلی برای iOS و Android است. هر 30 فریم، پروفایلر داخلی پیام های کنسول را از اپلیکیشنی که روی دستگاه اجرا می شود؛ خارج میکند. این پیام ها فهم و درکی در مورد نحوه اجرای برنامه ارائه می دهند. به طور خاص، آنها به شما کمک می کنند تا مشخص کنید برنامه شما به CPU یا GPU محدود است. اگر برنامه شما به CPU محدود است، همچنین می توانید تعیین کنید که کد اسکریپت یا جمع آوری زباله (garbage) باعث ایجاد تنگراه شده است.
همانطور که اشاره شد ابزارهای پروفایلر میتوانند از بهترین ابزارها برای تجزیه و تحلیل بخش فنی بازی در یونیتی باشد. در این ابزارها میتوانید به راحتی میزان زمان و منابعی که برای بخش های بازی مصرف شده است را ببینید. برای این که بتوانید عملکرد (performance) تمامی اجزا بازی را تشخیص دهید، استفاده از ابزارهای پروفایلر میتواند راهی عالی برای این کار باشد. ابزارهای پروفایلر زمانی کارشان را شروع میکنند که اجزای مختلف یک بازی در موتور یونیتی قرار گرفته و تنظیمات آن ها انجام شود.