تخطَّ إلى المحتوى

اكتشف تسربات الذاكرة

كرر التنقل وافحص الكائنات التي تبقى في الذاكرة بعد العودة إلى الصفحة الأولى. راجع تراكم الذاكرة الذي لوحظ في المتصفح.

جزء من التقرير

اطّلع على المجموعة التي تنمو بين التكرارات

مثال توضيحي للتنقل والرجوع. تشرح القيم التقرير وليست نتائج فحص موقعك.

تغيير المسار

/catalog → /product → /catalog × 5

انتهى الانتقال، لكن كائنات حالة الصفحة السابقة ما زالت في الذاكرة. يزداد عددها مع كل تكرار. تحقق من المراجع التي تحتفظ بها.

نماذج عرض المسار من النوع Object
قبل → بعد
846 → 1451
الفرق
+605
التغيّر / التكرار
+121
Set<observerTarget>
قبل → بعد
34 → 74
الفرق
+40
التغيّر / التكرار
+8
الذاكرة الأصلية
قبل → بعد
41.2 → 54.7 MB
الفرق
+13.5 MB
التغيّر / التكرار
+2.7 MB

بيانات توضيحية لشرح التقرير. تظهر نتائج صفحتك بعد الفحص.

كيف يعمل

نكرر سيناريو ونحسب التغيّر بين المرات

السيناريو

نختار روابط الصفحة

يعثر الماسح على ما يصل إلى ثلاثة روابط داخلية ظاهرة. ويكرر الانتقال عبر كل رابط والعودة إلى الصفحة التي بدأ منها الفحص خمس مرات.

الفرق

نقارن استهلاك الذاكرة

بعد جولة تمهيدية، نقيس الذاكرة التي تظل مشغولة بعد التنقل المتكرر. يكشف ذلك تراكمًا لا يظهر عند التحميل الأول.

مجموعات النمو

نعرض ما يتراكم

يسرد التقرير المجموعات ومستمعي الأحداث وعقد DOM وأنواع الكائنات المتزايدة. ويعرض للمجموعات مواضع تعديلها في الكود عندما تتوفر هذه المعلومات.

وحدات التحليل

ما يتضمنه تقرير تسرب الذاكرة

السيناريو

السيناريو المفحوص

يخزّن التقرير عنوان URL، ومسار المستخدم المفحوص، وعدد التكرارات، وعلامة التسرب بحيث يمكن إعادة إنتاج النتيجة.

تسرّبURLالتكرارات
الفرق

إجمالي نمو الذاكرة

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

التغيّر الإجماليلكل تكرارإحصاءات الذاكرة
المجموعات

Array, Map, Set, Object

تُدرج المجموعات المتنامية بشكل منفصل: الحجم قبل وبعد، والتغيّر، والتغيّر لكل تكرار، وتتبعات المكدس حيث تغيّرت المجموعة.

MapObjectتتبّع المكدس
المستمعات

مستمعات الأحداث والعقد

يعرض التقرير أعداد المستمعات قبل السيناريو وبعده، والتغيّر الناتج، وعقد المستمعات المتسربة حيث تنمو الاشتراكات.

قبل / بعدالتغيّر في عدد العقدلكل تكرار
DOM

نمو عقد DOM

يعرض التقرير نمو عقد DOM وأوصاف العقد المتسربة، مما يسهّل العثور على DOM المنفصل أو التهيئة المتكررة للواجهة.

عدد العقدdescriptionمنفصل
كائنات الكومة

أنواع كائنات الكومة

بالنسبة لأنواع الكائنات المتنامية، يتضمن التقرير تغيّر العدد، وتغيّر الحجم، وتغيّر الحجم المحتفظ به، والقيم لكل تكرار. عند توفر بيانات البيئة، تُعرض كومة total وnative وV8 بشكل منفصل.

التغيّر في العددالتغيّر في الحجممحتفَظ به
الأسئلة الشائعة

الأسئلة الشائعة حول تسرب الذاكرة

إجابات مختصرة حول الفرق لكل تكرار، والمجموعات المتنامية، والمستمعين، وعقد DOM، وما يجب فعله بعد التقرير.

هل كل زيادة في الذاكرة تسرّب؟
لا. قد يحتفظ التطبيق ببيانات لا يزال يحتاجها. يبحث الماسح عن التراكم عند تكرار الانتقال، لكنه لا يعرف احتياجات تطبيقك. تحقق مما يحتفظ بالكائنات وما إذا كان ينبغي تحريرها بعد العودة.
ما هي عقد DOM المنفصلة؟
هي عناصر أُزيلت من المستند لكنها بقيت في الذاكرة بسبب مراجع JavaScript. مثلًا، قد يبقى مرجع إلى عنصر نافذة حوار مغلقة. تساعد أوصاف العقد على تضييق البحث؛ تحقق في الكود من المرجع الذي يحتفظ بها.
هل يمكن للفحص اكتشاف تسرب مستمعي الأحداث؟
نعم. يعرض التقرير أعداد المستمعين قبل وبعد، والفرق الإجمالي، والفرق لكل تكرار، وعقد المستمعين المتسربة مع فرق عدد العقد. يساعد هذا في التمييز بين اشتراك لمرة واحدة ومعالجات تُضاف في كل تكرار.
ما الصفحات والإجراءات التي يفحصها الماسح؟
الفحص مخصص لتطبيقات SPA التي تتنقل دون إعادة تحميل الصفحة كاملة. يختار الماسح ما يصل إلى ثلاثة روابط داخلية ظاهرة ويكرر الانتقال والعودة. لا يفحص النماذج أو البحث أو فتح نوافذ الحوار بشكل مستقل. إذا لم يجد روابط مناسبة، يفشل الفحص؛ ولا يعني ذلك عدم وجود تسرّبات.
ماذا يجب أن أفعل بعد العثور على تسرب؟
كرر الانتقال الوارد في التقرير. إذا ازداد عدد مستمعي الأحداث عند كل عودة، فحدد موضع إضافتهم في المكون وتحقق من تنفيذ التنظيف. افحص المراجع التي تحتفظ بالكائنات بدل الاعتماد على علامة leak وحدها. بعد الإصلاح، قارن المسار نفسه وبعدد التكرارات نفسه.
ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لنمنحك تجربة أفضل على موقعنا. يمكنك معرفة المزيد حول كيفية استخدامنا لملفات تعريف الارتباط في سياسة الخصوصية.