למד כיצד להשתמש ב-Chrome וב-DevTools כדי למצוא בעיות זיכרון המשפיעות על ביצועי הדף, כולל דליפות זיכרון, התנפחות זיכרון ואיסוף פסולת תכוף.
סיכום
- אתם יכולים לבדוק כמה זיכרון הדף צורך באמצעות מנהל המשימות של Chrome.
- המחשה חזותית של השימוש בזיכרון לאורך זמן באמצעות הקלטות של ציר הזמן.
- לזהות עצי DOM מנותקים (סיבה נפוצה לדליפות זיכרון) באמצעות תמונות מצב של ערימה (heap snapshot).
- בעזרת הקלטות של ציר הזמן של ההקצאה, אתם יכולים לגלות מתי מוקצה זיכרון חדש ב-JS heap.
- זיהוי רכיבים מנותקים שנשמרו על ידי הפניה ב-JavaScript.
סקירה כללית
ברוח מודל הביצועים RAIL, המשתמשים צריכים להיות במוקד של מאמצי הביצועים שלכם.
בעיות בזיכרון הן חשובות כי המשתמשים בדרך כלל מבחינים בהן. המשתמשים יכולים להבחין בבעיות בזיכרון בדרכים הבאות:
- הביצועים של הדף הולכים ומידרדרים עם הזמן. יכול להיות שזה תסמין של דליפת זיכרון. דליפת זיכרון מתרחשת כשבאג בדף גורם לדף להשתמש ביותר ויותר זיכרון לאורך זמן.
- הביצועים של דף מסוים גרועים באופן עקבי. יכול להיות שזה סימפטום של ניפוח זיכרון. ניפוח הזיכרון מתרחש כשדף משתמש ביותר זיכרון מהנדרש כדי להגיע למהירות דף אופטימלית.
- הביצועים של הדף מתעכבים או נראה שהדף מושהה לעיתים קרובות. יכול להיות שזה סימפטום של איסוף אשפה תכוף. איסוף הוא תהליך שבו הדפדפן מפנה זיכרון. הדפדפן מחליט מתי זה קורה. במהלך איסוף הנתונים, כל הפעלות הסקריפטים מושהות. לכן, אם הדפדפן מבצע הרבה פעולות של איסוף, הפעלת הסקריפט תושהה הרבה פעמים.
ניפוח זיכרון: כמה זה "יותר מדי"?
קל להגדיר דליפת זיכרון. אם אתר משתמש בהדרגה ביותר ויותר זיכרון, יש לכם דליפה. אבל קצת יותר קשה לזהות ניפוח זיכרון. מה נחשב ל "שימוש בכמות זיכרון גדולה מדי"?
אין כאן מספרים מדויקים, כי למכשירים ולדפדפנים שונים יש יכולות שונות. אותו דף שפועל בצורה חלקה בסמארטפון מתקדם עלול לקרוס בסמארטפון פשוט.
העיקרון החשוב כאן הוא להשתמש במודל RAIL ולהתמקד במשתמשים. בדקו אילו מכשירים פופולריים בקרב המשתמשים שלכם, ואז בדקו את הדף במכשירים האלה. אם חוויית השימוש גרועה באופן עקבי, יכול להיות שהדף חורג מיכולות הזיכרון של המכשירים האלה.
מעקב אחרי השימוש בזיכרון בזמן אמת באמצעות מנהל המשימות של Chrome
כדי לחקור בעיות בזיכרון, כדאי להתחיל במנהל המשימות של Chrome. מנהל המשימות הוא כלי מעקב בזמן אמת שמראה כמה זיכרון דף מסוים צורך.
כדי לפתוח את מנהל המשימות, מקישים על Shift+Esc או עוברים לתפריט הראשי של Chrome ובוחרים באפשרות כלים נוספים > מנהל המשימות.

לוחצים לחיצה ימנית על כותרת הטבלה של מנהל המשימות ומפעילים את האפשרות זיכרון JavaScript.

שתי העמודות האלה מספקות מידע שונה על השימוש של הדף בזיכרון:
- העמודה הזיכרון שבשימוש מייצגת את זיכרון מערכת ההפעלה. צומתי DOM מאוחסנים בזיכרון של מערכת ההפעלה. אם הערך הזה עולה, נוצרים צומתי DOM.
העמודה JavaScript Memory מייצגת את ה-JS heap. העמודה הזו מכילה שני ערכים. הערך שמעניין אתכם הוא המספר של השידור החי (המספר בסוגריים). המספר של הנתונים בזמן אמת מייצג את נפח הזיכרון שבו משתמשים האובייקטים הנגישים בדף. אם המספר הזה גדל, סימן שנוצרים אובייקטים חדשים או שהאובייקטים הקיימים גדלים.

המחשה חזותית של דליפות זיכרון באמצעות הקלטות של ביצועים
אפשר גם להשתמש בחלונית ביצועים כנקודת התחלה נוספת לבדיקה. בחלונית Performance אפשר לראות את השימוש בזיכרון של הדף לאורך זמן.
- פותחים את החלונית Performance ב-DevTools.
- מסמנים את התיבה זיכרון.
- יצירת הקלטה.