استخدام الذاكرة (ذاكرة RSS المجهولة + مساحة الإبدال) هو مقياس في مؤشرات Android الحيوية يعكس استخدام تطبيقك للذاكرة.
الذاكرة المجهولة هي الذاكرة التي لا يستند إليها ملف في مساحة التخزين، مثل تخصيصات الكومة والذاكرة المخصّصة باستخدام mmap. حجم مجموعة البيانات الدائمة (RSS) هو إجمالي عدد صفحات الذاكرة (المشترَكة وغير المشترَكة) التي يستخدمها أحد العمليات والمخزَّنة في ذاكرة الوصول العشوائي (RAM) الفعلية. بالنسبة إلى الذاكرة المجهولة الهوية، يمكن للنظام كتابة الصفحات إلى مساحة التبديل (أو zRAM على Android) عندما تكون الذاكرة تحت الضغط.
بشكل عام، يشير استخدام الذاكرة (ذاكرة RSS المجهولة + مساحة الإبدال) إلى إجمالي عدد صفحات الذاكرة التي لا يتم الاحتفاظ بنسخة احتياطية منها في ملف على مساحة التخزين، بما في ذلك أي ذاكرة يحتفظ بها النظام أيضًا في مساحة الإبدال. يضمن تتبُّع حجم مجموعة البيانات الدائمة المجهولة (Anon RSS) بالإضافة إلى مساحة الإبدال أن ترى استهلاك الذاكرة الفعلي غير القابل للإزالة لتطبيقك.
تحديد الاستخدام العالي للذاكرة
مؤشرات Android الحيوية
تشارك "مؤشرات Android الحيوية" استخدام تطبيقك للذاكرة مقسَّمًا حسب حالات العمليات التالية:
- التطبيق في المقدّمة: تكون عملية التطبيق مرئية. يؤثّر ارتفاع قيمة P99 هنا غالبًا في الأداء الذي يلاحظه المستخدم (مثل حدوث إيقاف مؤقت لعرض واجهة المستخدم أو أعطال بسبب نفاد الذاكرة)، ويرجع ذلك بشكل كبير إلى الاحتفاظ بمكوّنات واجهة المستخدم أو الأنشطة التي لم يعُد هناك حاجة إليها.
- الخدمات التي يلاحظها المستخدم: يتم تشغيل عملية التطبيق في حالة ملحوظة. ويشمل ذلك الخدمات التي تعمل في المقدّمة والمهام السريعة ومهام نقل البيانات التي يبدؤها المستخدم. ويمكن أن يشمل أيضًا الخدمات المرتبطة بالنظام أو الخدمات المرتبطة بتطبيقات أخرى. بما أنّ هذه الخدمات مصمّمة لتنفيذ مهام تستغرق وقتًا طويلاً، فإنّ الاحتفاظ بالذاكرة بسبب تسرّبها أو عدم تحرير الموارد يمكن أن يؤدي إلى زيادة في P99 بمرور الوقت.
- في الخلفية: يشغّل التطبيق خدمة تُشغَّل في الخلفية أو تم تصغيره مؤخرًا إلى الخلفية، ولكن لم يتم تخزينه مؤقتًا بعد. وهنا يمكن أن تتراكم المشاكل المتعلقة بتسرُّب عمليات المعالجة في الخلفية والموارد التي لم يتم تحريرها. وبما أنّ حالة العملية هذه أقل أهمية من العمليات المرئية أو التي تعمل في المقدّمة، حاوِل تجنُّب الاحتفاظ بكميات كبيرة من الذاكرة في هذه الحالة.
- مخزَّن مؤقتًا: يكون التطبيق في حالة التخزين المؤقت. تتأثر هذه الحالة بشكل كبير بضغط ذاكرة النظام، مثل عمليات LMK. وبما أنّ نظام التشغيل يمكنه إيقاف هذه العملية في أي وقت، يتم توفير هذه الحالة لأغراض تصحيح الأخطاء فقط.
لفهم كيفية ارتباط حالات العملية هذه بعمليات معاودة الاتصال onTrimMemory،
راجِع الإرشادات حول تحرير الذاكرة استجابةً للأحداث.
تُقسّم "مؤشرات Android الحيوية" أيضًا استخدام تطبيقك للذاكرة حسب فئات ذاكرة الوصول العشوائي (RAM). يتم عرض مقياس "استخدام الذاكرة" كمخطط زمني لقيم الشرائح المئوية اليومية، بالإضافة إلى أحدث قيمة يومية للشريحتَين المئويتَين الخمسين والتسعين.
تحديد تسربات الذاكرة باستخدام انحراف الذيل
للمساعدة في تحديد تسربات الذاكرة، ابحث عن اختلاف بين المستخدمين العاديين (P50) والمستخدمين في نهاية الذيل (P90) في "مؤشرات Android الحيوية". في حين أنّ تضخّم مواد العرض العام يؤدي إلى زيادة استخدام الذاكرة بشكل موحّد في جميع النسب المئوية، تتراكم أخطاء تسريب الذاكرة بمرور الوقت، ما يؤدي إلى انحراف كبير في البيانات في الطرف الأخير.
عليك مقارنة مقياسَي P90 وP99 بمقياس P50 الأساسي حسب اسم العملية. إذا تجاوزت نسبة P90 إلى P50 مقدار 3.5 مرة، يشير ذلك إلى احتمال حدوث تسرُّب للذاكرة أثناء الجلسات المطوّلة. في بعض حالات الاستخدام، لا يشير ارتفاع النسبة دائمًا إلى حدوث تسرُّب، ولكن عليك تقييم سير العمل المحدّد لتحديد ما إذا كان ارتفاع استخدام الذاكرة سلوكًا متوقعًا.