الأداة MicroProfiler هي أداة لتحسين الأداء وحل المشكلات في استوديو روبلوكس وعملاء روبلوكس. تقدم معلومات توقيت مرئية ومفصلة لجميع مهام المحرك التي تعمل خلال إطار واحد، مثل تحريك الشخصيات، وتحديث الفيزياء، وتشغيل السكربتات، وعرض الهندسة. يمكنك تحديد المهام التي تم تنفيذها خلال أي إطار، ومدى الوقت الذي استغرقته تلك المهام للتنفيذ، وما إذا كان هناك أي منها تسبب في عدم تحقيق أهداف وقت الإطار الخاص بك.
أوقات الإطار
لاستخدام MicroProfiler، يجب أن تفهم العلاقة بين وقت الإطار و معدل الإطار.
- وقت الإطار هو الوقت الذي استغرقه إطار ما للظهور على الشاشة، وعادة ما يقاس بالمللي ثانية.
- معدل الإطار هو عدد الإطارات المعروضة على الشاشة، وعادة ما يقاس بالإطارات في الثانية (FPS).
أوقات الإطار المنخفضة تعني معدل إطار أعلى. قسم 1000 مللي ثانية (1 ثانية) على وقت الإطار لتحصل على معدل الإطار.
| متوسط وقت الإطار | الإطارات في الثانية |
|---|---|
| 33.33 مللي ثانية | 30 FPS |
| 16.67 مللي ثانية | 60 FPS |
| 8.33 مللي ثانية | 120 FPS |
| 4.17 مللي ثانية | 240 FPS |
لتحقيق تجربة ألعاب سلسة، من غير الكافي أن يكون لديك معدل إطار مرتفع. تحتاج إلى أوقات إطار متناسقة. على سبيل المثال، إذا وصلت 59 إطارًا في 10 مللي ثانية وإطار واحد في 410 مللي ثانية، فإن اللاعبين يشعرون بتقطع كبير، حتى لو كانت اللعبة تعمل بمعدل 60 FPS. إذا كانت جميع الإطارات تستغرق تقريبًا نفس المقدار من الوقت للعرض، ستبدو لعبتك أكثر سلاسة بشكل ملحوظ بسبب هذا الاتساق، خاصة عند معدلات الإطار المنخفضة.
يركز MicroProfiler تمامًا على وقت الإطار. الغرض منه هو مساعدتك في تحديد زيادة أوقات الإطار وما الذي تسبب فيها.
فتح MicroProfiler
فتح MicroProfiler يختلف باختلاف النظام الأساسي:
على عميل الهاتف المحمول، افتح قائمة الإعدادات وقم بتغيير MicroProfiler إلى تشغيل. ثم من جهاز تطوير على نفس الشبكة، استخدم متصفح الويب الخاص بك للتنقل إلى عنوان IP والمنفذ المقدم.

هذه الصورة توضح عنوان IP 172.18.56.105 ومنفذ 1338، لذا يجب عليك الانتقال إلى 172.18.56.105:1338. اعتمادًا على تكوين الشبكة لجهازك، قد ترى عدة عناوين IP. إذا لم يعمل أحدها، جرب الآخر.
على عميل المكتب، اضغط على CtrlF6 (⌘F6).
في الاستوديو، اضغط على CtrlF6 (⌘F6).
بشكل عام، يكون عميل الهاتف المحمول هو أفضل مكان لتقييم لعبتك. معظم اللاعبين على روبلوكس يستخدمون الهواتف والأجهزة اللوحية، وهذه الأجهزة تعاني من قيود حرارية وطاقة صارمة تحد من أدائها. إذا كانت لعبتك تعمل بشكل جيد على جهاز لوحي أندرويد متوسط المدى، فمن المؤكد تقريبًا أنه سيعمل بشكل أفضل بكثير على كمبيوتر ألعاب.
أساسيات MicroProfiler
لدى MicroProfiler عنصران رئيسيان: رسم بياني لوقت الإطار و خط زمن المهام المفصل.
- يعمل رسم وقت الإطار على طول أعلى واجهة المستخدم ويظهر المدة التي استغرقها كل إطار للعرض. الأشرطة الأطول تعني أوقات إطار أطول.
- تظهر الجدول الزمني جميع المهام الفردية التي تم تنفيذها خلال الإطار. الأشرطة الأوسع تمثل المهام التي استغرقت وقتًا أطول للتفيذ.
تتضمن عملية العمل النموذجية في MicroProfiler استخدام رسم وقت الإطار لتحديد زيادة (شريط أطول) ثم استخدام الجدول الزمني لتحديد المهام التي تسببت في الزيادة. ثم يمكنك التحقق من مرجع العلامات للحصول على معلومات حول المهمة وكيفية تحسين أدائها.

رسم وقت الإطار
ارتفاع كل شريط يشير إلى عدد المللي ثانية التي استغرقت لإكمال الإطار. تكون الإطارات الأحدث على اليمين. مرر فوق إطار للحصول على معلومات أساسية حول استخدام وحدة المعالجة المركزية ووحدة معالجة الرسومات.

الأشرطة البرتقالية هي الإطارات التي يتجاوز فيها وقت جدار الوظائف وقت جدار العرض. في هذه الإطارات، استغرق أحد الخيوط العاملة، التي تقوم بأشياء مثل تشغيل السكربتات، وحساب الفيزياء، وتشغيل الرسوم المتحركة، وقتًا أطول للتنفيذ من الخيط الرئيسي لعرض الرسوم.
إذا كانت اللعبة لا تصل إلى أهداف وقت الإطار الخاصة بك ولديها عدد كبير من الإطارات البرتقالية، فإن الأسباب الشائعة هي السكربتات والفيزياء والرسوم المتحركة. انظر تحسين الأداء.
الأشرطة الزرقاء هي الإطارات التي يتجاوز فيها وقت جدار العرض وقت جدار الوظائف. في هذه الإطارات، استغرق خيط العرض الرئيسي وقتًا أكثر من أي خيط عامل.
إذا كانت اللعبة لا تصل إلى أهداف وقت الإطار الخاصة بك ولديها عدد كبير من الإطارات الزرقاء، فإن ذلك يشير إلى وجود عنق زجاجة في العرض. الأسباب الشائعة هي كثافة الكائنات المفرطة، حركة الكائنات، والإضاءة. انظر تحسين الأداء.
الأشرطة الحمراء هي الإطارات التي تتحقق فيها شرطين:
- وقت جدار العرض يتجاوز وقت جدار الوظائف
- وقت انتظار وحدة معالجة الرسومات أكبر من 2.5 مللي ثانية
الأشرطة الحمراء أقل شيوعًا من البرتقالية والزرقاء وغالبًا ما تكون نتيجة لتعقيد الكائنات المفرط، حجم القوام، والتأثيرات البصرية. التحسين مماثل للأشرطة الزرقاء. انظر تحسين الأداء.
يمكن أن تؤدي المهام الصغيرة في نهاية إطار ما إلى إرباك وقت جدار الوظائف ووقت جدار العرض، وهو سبب جيد للتركيز بشكل أكبر على وقت الإطار بدلاً من لون الإطار. لا يوجد "لون جيد" تسعى إليه. مزيج من البرتقالي والأزرق والأحمر ليس مشكلة طالما أنك تحقق أهداف وقت الإطار الخاصة بك. إذا لم تكن تحقق أهداف وقت الإطار الخاصة بك، يمكن أن تشير الألوان إلى أماكن يجب تحسينها.
الجدول الزمني
انقر بزر الفأرة الأيسر واسحب لتحريك الجدول الزمني. على جهاز به العديد من أنوية وحدة المعالجة المركزية، قد تحتاج إلى تحريك لأعلى أو لأسفل إلى حد كبير للعثور على الخيط الذي يقوم بتنفيذ مهمة معينة.

يقوم التمرير بتكبير الجدول الزمني للداخل والخارج. مع تسميات المللي ثانية في أعلى الجدول الزمني، يمكنك أن تحصل على فكرة عن مدى الوقت الذي استغرقته المهمة في سياق مطلق، ولكن أيضًا مدى الوقت الذي استغرقته بالنسبة للمهام الأخرى.

تشير الطبقة الخضراء على مخطط البياني إلى عدد الإطارات المرئية حاليًا على الجدول الزمني - مستوى تكبيرك. انقر بزر الفأرة الأيسر على شريط إطار للقفز إلى تلك النقطة على الجدول الزمني.
قد تحتاج إلى ضبط مستوى التكبير الخاص بك، لكن المرور فوق شريط يبرز الإطار على الجدول الزمني. تحدد الخطوط الرمادية الفاتحة الإطارات.

تسميات تظهر مباشرة أسفل تسمية أخرى تشير إلى المهام التي يتم تنفيذها كجزء من المهمة العليا.
بدلاً من المهمة الأم، ترغب عادةً في حل مشاكل أسوأ المهام الفرعية؛ فلا يمكن أن تكون المدة الزمنية لمهمة أعلى أقل من مجموع المهام الفرعية.
انقر بزر الفأرة الأيمن على تسمية لتكبير الجدول الزمني ليتناسب تمامًا مع مدة تلك المهمة.
إذا كان مقدار المعلومات مذهلًا، استخدم قائمة المجموعات أو الخيوط لتصفية الجدول الزمني. على سبيل المثال، قد ترغب في رؤية مهام العرض فقط في الخيط الرئيسي.

استخدم CtrlF (⌘F) للقفز إلى حدوث مهمة تأخذ أكبر قدر من الوقت في التفريغ. على سبيل المثال، computeLightingPerform تعمل في كل إطار عميل. إذا بحثت عنها في تفريغ يحتوي على 128 إطارًا، يمكنك القفز إلى الإطار الذي استغرق أطول وقت لإكماله.
الخيوط
مثل العديد من البرامج، تستخدم روبلوكس عدة خيوط لأداء تسلسل من المهام في نفس الوقت. يعرض MicroProfiler اسم الخيط على الجانب الأيسر من الجدول الزمني.

هناك ثلاثة أنواع خيوط مهمة:
الرئيسية ("RBX Main"): تتعامل مع مهام عرض المعالج القائمة على CPU. تعالج الإدخال، Humanoids، الرسوم المتحركة/التعديل، ملكية الفيزياء، الصوت، وانتظار استئناف السكربتات. كما تقوم بتحديث واجهات الاستوديو وتنسيق الخيوط الأخرى.
العاملة ("RBX Worker"): تساعد الخيط الرئيسي في الشبكات والفيزياء والبحث عن المسارات. بسبب عدد النوى في وحدات المعالجة المركزية الحديثة، من المحتمل أن يكون لديك العديد من الخيوط العاملة، معظمها في حالة نوم في أي وقت.
العرض ("GPU"): تتبع منطق "التحضير، التنفيذ، العرض". تتواصل مع وحدة معالجة الرسومات (GPU) للجهاز.
- التحضير: تُستخدم المعلومات من الخيط الرئيسي لتحديث نماذج العرض.
- التنفيذ: إصدار أوامر العرض، بما في ذلك واجهات 2D.
- العرض: مزامنة مع GPU.
ملفات السكربت المخصصة
إذا كانت سكربتاتك تقوم بتشغيل مهام معقدة، يمكنك تقييم أجزاء حرجة من الكود لضمان عدم استغراقها وقتًا طويلاً. لف الكود باستخدام debug.profilebegin() و debug.profileend() لقياس كل شيء يتم بين استدعاءات هذه الوظائف وإنشاء تسمية على الجدول الزمني لـ MicroProfiler.
local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("جهد شاق")
-- مثال على العمل الشاق: تبديل متغيرين 200,000 مرة
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)

من مدته على الجدول الزمني، يمكنك أن تخبر أن الوظيفة تستخدم الكثير من وقت المعالجة مقارنةً بالمهام الأخرى.
حفظ بيانات الإطار
إذا كنت ترغب في حفظ مجموعة من بيانات الإطار للمراجعة لاحقًا (أو لمشاركتها مع شخص آخر)، استخدم زر حفظ في ملف. يقوم MicroProfiler بحفظ بيانات الإطار في ملف HTML مستقل يُسمى microprofile-<date>-<time>.html.

على عميل المكتب أو في الاستوديو، استخدم قائمة Dump. في كلا الحالتين، يقوم MicroProfiler تلقائيًا بحفظ الملف في دليل سجلات روبلوكس:
على نظام ويندوز، تحقق من %LOCALAPPDATA%\Roblox\logs.
إذا كنت تستخدم تطبيق نظام ويندوز الشامل (UWP)، تحقق من \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\.
على نظام macOS، تحقق من ~/Library/Logs/Roblox.
تقييم الخادم
بالإضافة إلى تقييم العميل، يمكنك التقاط تفريغات سريعة لنشاط الخادم:
على عميل المكتب، انضم إلى لعبة لديك أذونات التحرير لها.
افتح وحدة تحكم المطور باستخدام CtrlF9 (⌘F9).
في قائمة المنسدلة، اختر MicroProfiler.
في تبويب الخادم، حدد عدد الإطارات التي ترغب في التقاطها (الحد الأقصى 60) وعدد الثواني للتأخير قبل بدء الالتقاط (الحد الأقصى 4).
انقر على بدء تسجيل الخادم.

بعد بضع ثوانٍ، توفر وحدة تحكم المطور المسار إلى الملف، وهو نفس المسار كما هو الحال في تفريغ قياسي.
ميزات الويب فقط
لدى MicroProfiler واجهتان للمستخدم: واجهة الويب (الهاتف المحمول والتفريغات) وواجهة المكتب (العميل والاستوديو). نوصي باستخدام واجهة الويب كلما كان ذلك ممكنًا. بشكل عام، تعمل الواجهتان بشكل مشابه، ولكن واجهة الويب تحتوي على بعض الميزات الإضافية:
استخدم قائمة الأشعة السينية لتفعيل أو تعطيل ترميز الألوان لالتخصيص الذاكرة.

- تشير الإطارات الأفتح داخل مخطط العمود الرئيسي إلى تخصيص ذاكرة أعلى.
- تشير الأجزاء الأخف من شريط المعاينة والتسميات الأخف على الجدول الزمني إلى أجزاء من الإطار مع تخصيص ذاكرة أعلى.
- في وضع الأشعة السينية، اضغط على C لإظهار الحجم الإجمالي لتخصيصات الذاكرة بدلاً من عدد التخصيصات.
استخدم قائمة تصدير لتصدير رسم بياني لوقت المعالج أو الذاكرة، وهو تصور متخصص يجمع جميع مكدسات الاستدعاء المضمنة في التفريغ، ويحافظ على التسلسل الهرمي للأبوة-الأبناء، ويقوم بحجمها بناءً على المدة. تعتبر رسوم الجبال النارية مفيدة بشكل خاص لتحديد المهام التي لا تسبب لك فقدان أهداف وقت الإطار الخاصة بك (وبالتالي يصعب ملاحظتها)، ولكنها تعمل بشكل متكرر لدرجة أن وقت معالجتها يصبح ملموسًا.

يمكنك أيضًا إنشاء رسوم نارية في الاستوديو، على الرغم من أنها فقط للسكربتات (زمن التنفيذ وتخصيص الذاكرة). مقارنةً برسوم الجبال النارية المستندة إلى الويب، تكون التي في الاستوديو من الأعلى إلى الأسفل بدلاً من الأسفل إلى الأعلى وتدعم أوقات ملتقطة أطول بشكل دراماتيكي.

اسحب وأسقط ملف تفريغي ثانٍ في واجهة الويب لإنشاء رسم بياني للجبال النارية، والذي يمكن أن يساعدك في تحديد التحسينات أو التدهورات في أداء لعبتك بمرور الوقت. انقر على دمج ومقارنة لتصدير ملف HTML جديد.

يبرز رسم الجبال النارية للفرق التفريغ (الأيسر أو الأيمن) الذي يستهلك المزيد من وحدة المعالجة المركزية أو الذاكرة، مع ألوان أكثر إشراقًا تشير إلى فرق أكبر.

ميزات المكتب فقط
على الجدول الزمني للكمبيوتر المكتبي، انقر زر الفأرة الأيسر على تسمية لإضافتها إلى رسم بياني في الزاوية السفلية اليسرى. يعرض الرسم البياني الوقت الذي تستغرقه المهمة في كل إطار. باستخدام هذا الرسم البياني، يمكنك اختبار أداء مهام معينة فقط في لعبتك. عندما تنتهي، انقر بزر الفأرة الأيمن على الرسم البياني لإخفائه.

هذا الرسم البياني متزامن مع الأشرطة الرئيسية للملف الشخصي. يتم تمييز نطاق الإطار المحدد حاليًا باللون الأخضر في الرسم البياني. يمكنك أيضًا النقر في أي مكان على هذا الرسم البياني لإعادة مركز عرض الملف الشخصي الرئيسي على هذا الإطار المحدد، مما يساعد على العثور على الزيادات في العرض المفصل.