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