استخدم أداة محلّل التخصيص للعثور على العناصر التي لا يتم تجميعها بشكل صحيح كالبيانات المهملة، والاستمرار في الاحتفاظ بالذاكرة.
آلية عمل الأداة
يدمج محلل التخصيص معلومات النبذة التفصيلية عن المحلّل لعناصر متعدّدة مع التعديل والتتبُّع المتزايدَين في لوحة "المخطّط الزمني". على غرار هذه الأدوات، يتضمن تتبع تخصيص كومة العناصر للكائنات بدء التسجيل وتنفيذ سلسلة من الإجراءات ثم إيقاف التسجيل للتحليل.
تأخذ الأداة لقطات لأجزاء من الذاكرة بشكل دوري طوال التسجيل (كتكرار كل 50 ملي ثانية) وتقوم بلقطة أخيرة في نهاية التسجيل.
تفعيل محلّل التخصيص
لبدء استخدام محلّل التخصيص:
- تأكَّد من تثبيت أحدث إصدار من Chrome Canary.
- افتح أدوات المطور وانقر على رمز الترس في أسفل اليسار.
- والآن، افتح لوحة "Profiler"، ومن المفترض أن يظهر لك ملف شخصي باسم "Record Heap Allocations"
قراءة الملف الشخصي لتخصيص الذاكرة
يعرض الملف الشخصي لتخصيص الذاكرة المؤقتة المكان الذي يتم إنشاء العناصر فيه ويحدّد مسار الاحتفاظ بالبيانات. في اللقطة أدناه، تشير الأشرطة في أعلى الصفحة إلى وقت العثور على عناصر جديدة في الذاكرة.
يتجاوب ارتفاع كل شريط مع حجم العناصر المخصّصة مؤخرًا، ويشير لون الأشرطة إلى ما إذا كانت تلك الكائنات لا تزال موجودة في اللقطة الأخيرة من الذاكرة أم لا. تشير الأشرطة الزرقاء إلى الكائنات التي لا تزال موجودة في نهاية المخطط الزمني، وتشير الأشرطة الرمادية إلى الكائنات التي تم تخصيصها خلال المخطط الزمني، ولكنها تم جمعها منذ ذلك الحين غير مرغوب فيها:
في اللقطة التالية، تم تنفيذ إجراء 10 مرات. يخزن البرنامج النموذجي خمسة كائنات، لذا من المتوقع أن تظهر آخر خمسة أشرطة زرقاء. لكن الشريط الأزرق الموجود في أقصى اليسار يشير إلى مشكلة محتملة.
يمكنك بعد ذلك استخدام أشرطة التمرير في المخطط الزمني أعلاه لتكبير تلك اللقطة المحددة ومشاهدة الكائنات التي تم تخصيصها مؤخرًا في تلك المرحلة:
ويؤدي النقر على كائن معيّن في كومة الذاكرة إلى إظهار شجرة الاحتفاظ به في الجزء السفلي من اللقطة المجمّعة. من المفترض أن يمنحك فحص مسار الاحتفاظ بالكائن معلومات كافية لفهم سبب عدم جمع الكائن، ويمكنك إجراء التغييرات اللازمة على الرمز لإزالة المرجع غير الضروري.
عرض تخصيص الذاكرة حسب الدالة
يمكنك أيضًا عرض تخصيص الذاكرة حسب وظيفة JavaScript. راجع التحقيق في تخصيص الذاكرة حسب الوظيفة للحصول على مزيد من المعلومات.