كل مكون من مكونات البناء والبرمجة التي تضيفها إلى لعبتك يستهلك الذاكرة. عندما يصل استخدام الذاكرة إلى حدود المحرك، قد يتعطل جهاز المستخدم أو الخادم، لذا تحتاج إلى مراقبة الاستخدام بنشاط.
توفر وحدة التحكم للمطورين أداتين لمراقبة استخدام الذاكرة:
الذاكرة — عرض استهلاك الذاكرة في الوقت الحقيقي حسب فئات الاستخدام، بما في ذلك المكونات المخصصة الخاصة بك والعمليات الداخلية للمحرك.
Luau heap — إنشاء لقطات من ذاكرة الكومة، والتي تشير إلى تخصيص الذاكرة لبرامجك النصية. توفر هذه الأداة عدة طرق لمساعدتك في تحديد تخصيص الذاكرة الحالي والمشكلات من وجهات نظر مختلفة، مثل أنواع الكائنات وفئات المحرك. كما يسمح لك بإنشاء لقطات متعددة لمقارنة الاختلافات في استخدام الذاكرة بمرور الوقت.
You can open the console during a testing or live game session using any of the following ways:
- Press F9.
- Type /console into the chat.
- Use the in-game menu:
Open the in-game Roblox Menu.

Select the Settings tab.
Scroll down to Developer Console and click Open.
الذاكرة
تصنف أداة الذاكرة وتعرض استخدام الذاكرة في الوقت الحقيقي. تعرض استخدام الذاكرة بالميغابايت لكل فئة وتولد مخططًا لتغير الاستخدام بمرور الوقت.
لعرض تخصيص الذاكرة:
افتح وحدة التحكم للمطورين.
قم بتوسيع قائمة الأدوات المنسدلة لاختيار الذاكرة.

قم بتوسيع قائمة العميل-الخادم لاختيار العميل أو الخادم.
تصفح فئات وأصناف استخدام الذاكرة. إذا كنت ترغب في رؤية الاستخدام بمرور الوقت، قم بتوسيع الفئة لعرض مخطط.
CoreMemory — استخدام الذاكرة من قبل العمليات الأساسية لبناء المحرك، بما في ذلك الشبكات، والأفاتار، وعناصر واجهة المستخدم التي ليس لديك تحكم مباشر عليها.
PlaceMemory — استخدام الذاكرة بناءً على كيفية بناء لعبتك، بما في ذلك النماذج، والتضاريس، والأجزاء، والبرامج النصية، وجميع العناصر المخصصة الأخرى التي تضيفها إلى لعبتك.
مرجع PlaceMemoryالفئة الوصف HttpCache الأصول (الصور، الشبكات، إلخ) المحملة من خوادم Roblox والمحتفظ بها الآن في ذاكرة التخزين المؤقت. Instances Instances في المكان. Signals الإشارات التي تطلق بين الكائنات (حدث يتم إطلاقه على كائن واحد لتحفيز حدث على كائن آخر). LuaHeap ذاكرة الكومة لكل من البرامج النصية الأساسية (البرامج النصية التي تأتي مع عميل Roblox) والبرامج النصية المخصصة. Script برامج Luau النصية. PhysicsCollision بيانات الاصطدام لمحاكاة الفيزياء. PhysicsParts هندسة الفيزياء والحركيات. GraphicsSolidModels بيانات الرسوميات لعرض النماذج الصلبة. GraphicsMeshParts الرسوميات لكائنات MeshPart. GraphicsParticles الرسوميات لأنظمة الجسيمات. GraphicsParts الرسوميات للأجزاء. GraphicsSpatialHash التصيير العام. GraphicsTerrain الرسوميات للتضاريس. GraphicsTexture ذاكرة القوام. GraphicsTextureCharacter ذاكرة القوام للشخصيات. Sounds الأصوات الموجودة في الذاكرة. StreamingSounds الأصوات المتدفقة. TerrainVoxels فوكسي التضاريس. TerrainPhysics فيزياء التضاريس. Gui الذاكرة المستخدمة من قبل عناصر واجهة المستخدم الشائعة. Animation الذاكرة المستخدمة لبيانات الرسوم المتحركة، مثل الوضعيات وبيانات KeyframeSequence المخزنة لرسوم متحركة للأفاتار. Navigation الذاكرة المستخدمة من قبل الهياكل الداعمة لـ PathfindingService. UntrackedMemory — تخصيصات الذاكرة التي لا يمكن للنظام نسبها بسهولة إلى مصدر معين.
PlaceScriptMemory — استخدام الذاكرة لبرامجك النصية مع رؤى حول كيفية مساهمة البرامج النصية الفردية وعلامات الذاكرة المخصصة في إجمالي استخدام الذاكرة.
CoreScriptMemory — استخدام الذاكرة من قبل البرامج النصية الداخلية للمحرك التي ليس لديك تحكم مباشر عليها.
من بين هذه الفئات، تعتبر PlaceMemory وPlaceScriptMemory الأكثر أهمية لتحسين الأداء، لأنها تساعدك على فهم كيف تؤثر خيارات البناء والبرمجة الخاصة بك على استهلاك الذاكرة والمجالات المحتملة للتحسين. للحصول على مزيد من الرؤى حول PlaceScriptMemory، استخدم أداة Luau heap لإنشاء لقطات وتحليل تخصيص الذاكرة حسب مقاييس مختلفة.
Luau heap
تتيح لك أداة Luau heap إنشاء لقطات من تخصيص الذاكرة الحالي للكومة، والتي تشير إلى الذاكرة التي تستخدمها برامج Luau النصية لتخزين المتغيرات، والجداول، والدوال، وهياكل البيانات الأخرى في وقت التشغيل. توفر هذه الأداة عدة طرق لمساعدتك في تحديد المشكلات من وجهات نظر مختلفة، مثل أنواع الكائنات وفئات المحرك. كما يسمح لك بإنشاء لقطات متعددة لمقارنة الاختلافات في استخدام الذاكرة بمرور الوقت.
إنشاء لقطات
لإنشاء لقطة من تخصيص الذاكرة لديك:
افتح وحدة التحكم للمطورين.
قم بتوسيع قائمة الأدوات المنسدلة لاختيار LuauHeap.

قم بتوسيع قائمة العميل-الخادم لاختيار العميل أو الخادم.
انقر على زر إنشاء لقطة.
تحليل استخدام الذاكرة
توفر الأداة العديد من الطرق لرؤية استخدام الذاكرة في Luau:
- المخطط — يظهر شجرة استخدام الذاكرة المجمعة، مع كل عقدة تمثل كائنًا تم تخصيص الذاكرة له.
- علامات الكائنات — تظهر أحجام الذاكرة والأعداد حسب الأنواع في وقت التشغيل، مثل function، table، وthread.
- فئات الذاكرة — تظهر أحجام الذاكرة والأعداد حسب الفئات المخصصة للذاكرة من قبل المحرك. يقوم المحرك بتعيين فئة ذاكرة لكائن في وقت التخصيص.
- فئات الكائنات — تظهر أحجام الذاكرة والأعداد حسب الفئات التي يستخدمها المحرك وتخزن مثيلاتها، مثل EnumItem، Animation، CFrame. من المهم أن هذه الطريقة لا تظهر استخدام الذاكرة داخل المحرك نفسه، بل فقط في Luau VM.
- المراجع الفريدة والمثيلات غير المتصلة — تظهر الأعداد والأرقام الإجمالية للمثيلات لـ المراجع الفريدة أو جميع المراجع المتبقية التي ليس لها والد في نموذج البيانات ويمكن الوصول إليها فقط بواسطة البرامج النصية. كما تظهر جميع المسارات التي تثبت كائن المثيل.
المخطط
عرض المخطط هو الأكثر تفصيلاً وتعقيدًا بين جميع طرق عرض Luau heap. يظهر شجرة استخدام الذاكرة المجمعة مع كل عقدة تمثل كائنًا تم تخصيص الذاكرة له. تظهر الشجرة كيف تتصل الكائنات ببعضها البعض وتستخرج أقصر مسار بين مراجع الكائنات. يحتوي على الأعمدة التالية لحجم الذاكرة:
- الحجم — استخدام الذاكرة الذاتي بالإضافة إلى استخدام الذاكرة من قبل المحتويات داخل هيكل البيانات.
- الذاتي — الذاكرة المخصصة مباشرة لهيكل البيانات نفسه، باستثناء استخدام الذاكرة من قبل أي محتوى يحتوي عليه.

جذر شجرة المخطط هو registry، الذي يخزن جميع المراجع الخاصة بالمحرك وLuau، مثل الدوال المتصلة بالإشارات أو مكتبة المهام، والجداول التي تعيدها برامج النصوص، والدوال العالمية، والجداول والفئات. عادةً ما يكون والدًا للإدخالات الشائعة التالية:
- Module @Path.To.Module هو الجدول الذي تعيده برنامج نصي.
- name:123 =Path.To.Module هو دالة داخل برنامج نصي محدد. الدوال المجهولة ليس لها أسماء. غالبًا ما تشير العقدة في المستوى الأعلى إلى دالة البرنامج النصي العالمية. مثال: :1= Workspace.[Username].Animate.
- upvalue هو مرجع للدوال الملتقطة. راجع التقاط النطاق المحلي لمزيد من المعلومات.
- env تشير إلى بيئة دالة. في معظم الحالات، هي جدول يمثل النطاق العالمي لبرنامج نصي.
- globals تشير إلى بيئة خيط.
- [key] تمثل الكائنات التي تعمل كمفاتيح جدول.
- array تمثل مصفوفة.
- stack تشير إلى المصفوفة التي تخزن جميع المتغيرات المحلية للدوال.
- constants تمثل جميع القيم الثابتة التي تستخدمها الدوال.
فئات الذاكرة
عرض فئات الذاكرة يظهر أحجام الذاكرة والأعداد حسب فئات الذاكرة، التي يقوم المحرك بتعيينها للكائنات في وقت التخصيص. بشكل افتراضي، تحمل فئة الذاكرة نفس اسم البرنامج النصي، أو يمكنك تعيين أسماء فئات ذاكرة مخصصة باستخدام دالة debug.setmemorycategory.
المراجع الفريدة والمثيلات غير المتصلة
عرض المراجع الفريدة والمثيلات غير المتصلة مرتبطان. كلاهما يظهر استخدام الذاكرة للمثيلات التي ليس لها والد في نموذج البيانات ويمكن الوصول إليها فقط بواسطة البرامج النصية، جنبًا إلى جنب مع جميع المسارات التي تثبت كائن المثيل. إذا كانت المثيلة مرجعية فقط داخل برامج Luau النصية، فإنها تظهر تحت المراجع الفريدة. خلاف ذلك، فهي أيضًا قيد الاستخدام من قبل أنظمة Roblox وتظهر تحت المثيلات غير المتصلة. كلا العرضين يظهران مقياسين:
- العدد — عدد المثيلات بنفس الاسم التي يمكن الوصول إليها من نفس المسار، مثل عدة مثيلات تحمل الاسم Dragon في نفس الجدول.
- إجمالي المثيلات — العدد الإجمالي للكائنات داخل تلك الجذور، مثل جميع الأجزاء، والبرامج النصية، وكائنات الصوت التي تشكل مثيل Dragon.

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