تحديد مشكلات الأداء

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

تحديد مشكلات الأداء يعني عمومًا التركيز على واحدة من ثلاث فئات: معدل الإطار (الحوسبة)، الذاكرة، أو زمن التحميل.

يمتلك Roblox عددًا من الأدوات لتحديد مشكلات الأداء، بعضها متاح في عميل Roblox (وبالتالي في الاستوديو) وبعضها متاح فقط في الاستوديو. في حين يمكنك ملاحظة سلوك العميل مباشرة، يجب عليك استخدام الأدوات لتشخيص مشكلات الخادم.

أدوات التشخيص

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

في اللعبة
F9
اختبار الاستوديو

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

في اللعبة
CtrlAltF6 (F6)
اختبار الاستوديو

الجلسات المباشرة
تحليل المشهديوفر معلومات مقارنة لمحة عن الموارد التي تستخدمها مشاهد العميل والخادم الخاصة بك والأجزاء المسؤولة عن ذلك الاستخدام.الاستوديوN/A
اختبار الاستوديو
إحصاءات الأداءشريط أدوات يحتوي على إحصاءات أداء أساسية، بما في ذلك استهلاك الذاكرة، وCPU، وGPU، وبيانات الشبكة المرسلة والمستلمة، وزمن ping.
في اللعبة
CtrlAltF7 (F7)
اختبار الاستوديو

الجلسات المباشرة
إحصاءات التصحيحت overlays بمعلومات تفصيلية حول الرسوميات، والفيزياء، ومرور الشبكة، وFPS.
الاستوديو

في اللعبة
ShiftCtrlF1 (ShiftF1), ShiftCtrlF2 (ShiftF2), ShiftCtrlF3 (ShiftF3), ShiftCtrlF4 (ShiftF4), ShiftCtrlF5 (ShiftF5)
اختبار الاستوديو

الجلسات المباشرة
محاكاة الشبكةخصائص تحاكي ظروف الشبكة في العالم الحقيقي مثل الكمون، والاهتزاز، وفقدان الحزم لاختبار الاتصالات.
الاستوديو
AltS(S)
اختبار الاستوديو
لوحة أداءلوحة تحتوي على مخططات تجميعية لاستخدام الذاكرة العميل والخادم، ومعدل الإطار العميل، ونبض الخادم، ومعدلات الأعطال في الوقت الحقيقي. إنها مفيدة لتحليل أنماط الأداء على مر الزمن. راجع مراقبة الأداء.
لوحة تحكم المبدع
N/A
الجلسات المباشرة

حساب الخادم

تم تحديد نبض الخادم عند 60 FPS لجميع الألعاب، لذا قد تشير القيم الأخفض إلى وجود مشكلة في الأداء. للتحقق من نبض الخادم:

  • باستخدام وحدة تحكم المطور - في علامة تبويب وظائف الخادم، قم بتوسيع صف نبض القلب وتحقق من قيمة الخطوات لكل ثانية، والتي تمثل نبض اللعبة.

  • باستخدام MicroProfiler، يمكنك التحقق من الرسم البياني لمعرفة ما إذا كان الإطار يستغرق أكثر من 16.67 مللي ثانية.

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

حساب العميل

الحد الافتراضي لعدد الإطارات في العميل هو 60 FPS. ومع ذلك، يمكن للمستخدمين رفع حد معدل الإطارات إلى 240 FPS على نظام Windows.

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

للتحقق من معدل الإطارات في لعبتك:

  • في العميل، اضغط على ShiftF5 لعرض ملخص إحصاءات التصحيح.

  • من قائمة نافذة في الاستوديو ⟩ الأداء، قم بتفعيل الإحصاءات لتمكين إحصاءات التصحيح.

  • باستخدام MicroProfiler، يمكنك التحقق من الرسم البياني لمعرفة ما إذا كان الإطار يستغرق أكثر من 16.67 مللي ثانية.

ذاكرة الخادم

حاول أن تحافظ على استخدام ذاكرة الخادم أقل من 50%. يتم استخدام الذاكرة الكلية للخادم وفقًا للصيغة التالية:

6.25 GiB + (100 MiB * أكبر عدد من اللاعبين المتصلين)

على سبيل المثال، يحتوي الخادم مع 30 لاعب متصلين على حوالي 9.18 GiB من الذاكرة الكلية. تزداد الذاكرة على الخوادم عند اتصالية اللاعبين، ولكن لا تفقدها عند انسحاب اللاعبين. إذا غادر 10 لاعبين، لا يزال الخادم يمتلك 9.18 GiB من الذاكرة بدلاً من الانكماش إلى 8.2 GiB.

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

ذاكرة العميل

هناك عدة طرق للتحقق من استخدام الذاكرة للعبة:

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

الاستخدام العالي للذاكرة ليس بالضرورة دليلاً على وجود مشكلة، ولكن بعض الإشارات على أنك قد تحتاج إلى مزيد من التحقيق تشمل:

  • نسبة كبيرة من أعطال العميل تظهر في لوحة أداء، لا سيما زيادة مفاجئة تتزامن مع تحديث. يُتوقع حدوث بعض الأعطال، ولكن يجب عليك التحقيق إذا زادت معدل أعطال مباشرةً فوق 2-3%.
  • يحدث عطل أثناء الاختبار على جهاز تريد أن يدعم لعبتك.

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

  • GraphicsMeshParts - الذاكرة الرسومية المستهلكة بواسطة الأشكال.
  • GraphicsTexture - الذاكرة الرسومية المستهلكة بواسطة القوام.
  • Sounds - الذاكرة المستهلكة بواسطة ملفات الصوت.

أوقات التحميل

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


local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- أربع أماكن عشرية
print("تم تحميل اللعبة في " .. roundedLoadTime .. " ثواني.")
print("عدد العناصر المحملة: " .. #workspace:GetDescendants())
end)

للحصول على رؤية إضافية، قم بتمكين Print Join Size Breakdown من علامة تبويب الشبكة في إعدادات الاستوديو لطباعة أعلى 20 عنصرًا حسب الحجم ونسبة التقسيم حسب نوع العنصر عند بدء اللعبة في الاستوديو.

ping

القياسان الرئيسيان للـ ping (الكمون) هما ping الشبكي و ping البيانات.

الـ ping الشبكي هو وقت الذهاب والإياب المقاس من وقت إرسال العميل لحزمة بيانات الشبكة إلى الوقت الذي يتلقى فيه رد صدى الخادم. إنه مشابه لما سيُبلغ عنه كـ time بواسطة أداة ping العامة.

الـ ping الشبكي مرئي في شريط إحصاءات الأداء. تتأثر بشكل رئيسي بطول المسار الشبكي بين العميل والخادم، وهي خارجة عن سيطرتك. ومع ذلك، يمكنك محاكاة الـ ping وظروف الشبكة الأخرى باستخدام محاكاة الشبكة عند اختبار اللعب في الاستوديو.

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

الـ ping البيانات مشابه لإرسال حدث بعيد موثوق من العميل، واستلامه على الخادم، ثم إرسال حدث بعيد موثوق من الخادم إلى العميل كاستجابة. نظرًا لأن الـ ping البيانات يشمل أيضًا الوقت المستغرق على الشبكة بين العميل والخادم، فإنه يكون أكبر من أو يساوي الـ ping الشبكي.

يمكن رؤية متوسط الـ ping البيانات لجميع اللاعبين المتصلين بخادم في علامة تبويب إحصاءات الخادم في وحدة تحكم المطور. يمكن رؤية الـ ping البيانات لعميل فردي باستخدام ShiftF3 لعرض إحصاءات تصحيح الشبكة.

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

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.