تستهلك كل مكون من مكونات البناء والبرمجة التي تضيفها إلى تجربتك الذاكرة. عندما يصل استخدام الذاكرة إلى حدود المحرك، قد يتعطل جهاز المستخدم أو الخادم، لذلك تحتاج إلى مراقبة الاستخدام بنشاط.
توفر وحدة التحكم للمطورين أداتين لمراقبة استخدام الذاكرة:
الذاكرة — عرض استهلاك الذاكرة في الوقت الحقيقي حسب فئات الاستخدام، بما في ذلك المكونات المخصصة الخاصة بك والعمليات الداخلية للمحرك.
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 الأصول (صور، شبكات، إلخ) التي تم تحميلها من خوادم روبيكس والآن تحتفظ بها في ذاكرة التخزين المؤقت. Instances Instances في المكان. Signals الإشارات التي تشتعل بين الكائنات (إشعارات حدث تحدث في كائن واحد لتحفيز حدث على كائن آخر). LuaHeap ذاكرة الهيب لكل من البرامج النصية الأساسية (البرامج النصية التي تأتي مع عميل روبيكس) والبرامج النصية المخصصة. 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، وليس ضمن المحرك نفسه.
- المراجع الفريدة والحالات غير المرتبطة — تظهر الأعداد والأعداد الإجمالية للحالات لـ المراجع الفريدة أو جميع المراجع المتبقية التي لا تمتلك والدًا في نموذج البيانات وقابلة للوصول فقط من خلال البرامج النصية. كما تعرض جميع المسارات التي تثبت كائن الحالة.
المخطط
عرض المخطط هو الأكثر تفصيلاً وتعقيداً من بين جميع عروض هيب Luau. يظهر شجرة معرفة باستخدام الذاكرة المجمعة مع كل عقدة تمثل كائناً به ذاكرة مخصصة. تظهر الشجرة كيفية ترابط الكائنات مع بعضها البعض وتستخرج أقصر مسار بين المراجع الكائنية. تحتوي على الأعمدة التالية لحجم الذاكرة:
- الحجم — استخدام الذاكرة الذاتي بالإضافة إلى استخدام الذاكرة بمحتويات داخل هيكل البيانات.
- الذاتي — الذاكرة المخصصة مباشرة لهيكل البيانات نفسه، باستثناء استخدام الذاكرة من أي محتوى يحتويه.

جذر شجرة المخطط هو 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 النصية، فإنه يظهر تحت المراجع الفريدة. إذا كان غير ذلك، فإنه يستخدم أيضاً بواسطة أنظمة روبيكس ويظهر تحت الحالات غير المرتبطة. تعرض كلا العرضتين قياسين:
- العدد — عدد الحالات بنفس الاسم التي يمكن الوصول إليها من نفس المسار، مثل وجود عدة حالات باسم Dragon في نفس الجدول.
- إجمالي الحالات — العدد الكلي للكائنات داخل تلك الجذور، مثل جميع الأجزاء، والبرامج النصية، وكائنات الصوت التي تشكل حالة Dragon.

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