دیباگر (Debugger)

سربرگ Profile

سربرگ Profile با جزئیّات زیاد به صورت تفکیک‌شده به شما نشان می‌دهد که تقریباً چه قدر از CPU استفاده می‌شود. برای این‌که Profiler بتواند اطّلاعات را جمع‌آوری کند و نمایش دهد، بازی باید پیوسته در جریان باشد. Profiler به صورت دسته‌بندی‌شده نشان می‌دهد که هر قسمت از دستورات بازی چه قدر از CPU time استفاده می‌کنند. این اطّلاعات هر ثانیه یک بار به‌روزرسانی می‌شوند، پس مقادیری که در این سربرگ می‌بینید مربوط به یک ثانیه پیش هستند.

پروفایلر در دیباگر

لازم به ذکر است که مقدار استفاده‌ی کلّی از CPU تقریبی نمایش داده می‌شود، بنابراین تمام مقادیر دیگر نیز تقریبی هستند. جزئیّاتی که Profiler نمایش می‌دهد فقط به فایل جاوااسکریپت اصلی بازی مربوط می‌شود، و ممکن است وظایفی دیگر در حال استفاده از CPU باشند، مثل پردازش صدا یا انجام محاسبات pathfinding. علاوه‌براین زمان رندرشدن بازی توسّط GPU نیز در Profiler اصلاً محاسبه نمی‌شود. سرعت رندر GPU به تنهایی می‌تواند نرخ فریم بازی را پایین بیاورد، ولی Profiler به طور مستقیم قادر به تشخیص آن نیست. به همین دلیل ممکن است با وجود پایین بودن مقدار استفاده از CPU ببینید که نرخ فریم بازی پایین است.

برخلاف اخطارهایی که دادیم، Profiler می‌تواند یکی از بهترین انتخاب‌ها برای تشخیص مشکلات بهینه‌سازی بازی باشد. توجّه داشته‌باشید که بهینه‌سازی در بسیاری از موارد لازم نیست و اگر بازی‌تان به اندازه‌ی کافی سریع است این کار فقط وقت تلف کردن است.

دسته‌بندی Profiler

Profiler جدول‌هایی تودرتو را نشان می‌دهد که نشان می‌دهد هر قسمت از موتور از جمله هرکدام از ایونت‌گروپ‌ها، چه‌قدر از CPU time را مصرف می‌کند. مواردی که معمولاً بیشترین مصرف CPU را دارند و اصطلاحاً top-level نامیده می‌شوند عبارتند از:

Events: این دسته‌بندی نشان می‌دهد که چه‌قدر از CPU time صرف اجرای دستورات ایونت‌شیت‌های مورد استفاده‌ی لیوت فعلی می‌شود. این دسته‌بندی در مرحله‌ی اوّل به چند دسته تقسیم می‌شود که هرکدام یکی از ایونت‌شیت‌ها را نمایش می‌دهد (در مواردی که از includeها استفاده می‌کنید)، سپس خود ایوت‌شیت‌ها به ایونت‌گروپ‌ها و ایونت‌گروپ‌های تودرتو تقسیم می‌شوند. این تقسیم‌بندی می‌تواند به شما کمک کند تا بفهمید کدام ایونت‌ها بیشترین مصرف CPU را دارند تا بدانید کجا را باید بهینه‌سازی کنید.

Physics simulation: این دسته‌بندی نشان می‌دهد که چه‌قدر از CPU time صرف پردازش رفتار Physics می‌شود. شبیه‌سازی‌های فیزیکی می‌توانند به شدّت از CPU کار بکشند. اگر این مقدار زیاد بود، اشیاء فیزیکی کمتری را در بازی درنظر بگیرید.

Draw calls: چه‌قدر طول می‌کشد تا CPU فرمان رندرشدن را بفرستد، این مقدار شامل زمانی که GPU آن را کامل می‌کند نمی‌شود. در بعضی مواقع، فرمان رندرشدن می‌تواند به شدّت از CPU کار بکشد، مخصوصاً وقتی اشیاء بسیار زیادی روی صفحه‌ی نمایش قرار داشته‌باشد. بعضی مرورگرها نیز همه‌ی فرامین رندرشدن را به جلو می‌فرستند تا به صورت موازی پردازش شوند، در این موارد احتمال اشتباه بودن این مقدار وجود خواهد داشت.

Engine: بقیّه‌ی زمانی که در موتور کانستراکت 2، با کم‌کردن زمان ایونت‌ها، فیزیک و فرامین رندرشدن صرف می‌شود. این زمان شامل پردازش رفتارها و سایر موارد داخلی موتور می‌شود.

Breakpointها

وقتی دیباگر را اجرا می‌کنید، می‌توانید روی یک ایونت، کاندیشن یا اکشن خاص Breakpoint قرار دهید، تا به محض رسیدن به آن نقطه، بازی متوقّف شود.

سؤالات فنی خود را فقط در انجمن بپرسید. در غیر این صورت پاسخ داده نخواهد شد.
۳ نظر

افزودن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تمامی حقوق برای مرجع تخصصی کانستراکت محفوظ است.