אתם יכולים להשתמש בכלי Allocation timeline כדי למצוא אובייקטים שלא מתבצעת להם פינוי אשפה בצורה תקינה, וכך להמשיך לשמור זיכרון.
איך פועל הכלי
הדוח Allocation timeline משללב את המידע המפורט של קובץ ה-snapshot מכלי הניתוח של אשכול עם העדכון המצטבר והמעקב של לוח ציר הזמן. בדומה לכלים האלה, כדי לעקוב אחר הקצאת אשכול צריך להתחיל הקלטה, לבצע רצף פעולות ואז להפסיק את ההקלטה לצורך ניתוח.
הכלי יוצר קובצי snapshot של אשכול מדי פעם במהלך ההקלטה (לפעמים כל 50 אלפיות השנייה!) וקובץ snapshot אחרון בסוף ההקלטה.
איך מתעדים דוח של ציר זמן להקצאה
כדי להתחיל להשתמש בכלי ציר הזמן של ההקצאות:
- פותחים את החלונית זיכרון בכלי הפיתוח.
- מפעילים את הפרופיל הקצאות בציר הזמן.
- לוחצים על הלחצן התחלה כדי להתחיל את ההקלטה.
קריאה של פרופיל הקצאת זיכרון בערימה
בפרופיל הקצאת הערימה מוצג המיקום שבו נוצרים אובייקטים ומזוהה נתיב השמירה. בתמונה המפורטת הבאה, העמודות בחלק העליון מציינות מתי נמצאים אובייקטים חדשים בערימה.
הגובה של כל עמודה תואם לגודל של האובייקטים שהוקצו לאחרונה, והצבע של העמודות מציין אם האובייקטים האלה עדיין פעילים בתמונת המצב הסופית של אשכול. פסים כחולים מציינים אובייקטים שעדיין פעילים בסוף ציר הזמן. פסים אפורים מציינים אובייקטים שהוקצו במהלך ציר הזמן, אבל מאז בוצעה בהם איסוף גרוטאות:
אפשר להגדיל את התצוגה כדי לסנן את החלונית Constructor כך שתוצגו רק אובייקטים שהוקצו במסגרת הזמן שצוינה. כדי להתקרב, גוררים את העכבר על מסגרת הזמן שבה רוצים להתמקד בציר הזמן.
לחיצה על קונסטרוקטור ספציפי בחלונית Constructor תציג את עץ השמירה שלו בחלונית Retainers. בחינת נתיב השמירה של האובייקט אמורה לספק לכם מספיק מידע כדי להבין למה האובייקט לא נאסף, ואתם יכולים לבצע את השינויים הנדרשים בקוד כדי להסיר את ההפניה המיותרת.
הצגת הקצאת הזיכרון לפי פונקציה
אפשר גם להציג את הקצאת הזיכרון לפי פונקציית JavaScript. מידע נוסף זמין במאמר בדיקת הקצאת הזיכרון לפי פונקציה.