از ابزار Allocation timeline برای پیدا کردن اشیایی که به درستی زباله جمع آوری نمی شوند استفاده کنید و به حفظ حافظه ادامه دهید.
ابزار چگونه کار می کند
گزارش جدول زمانی تخصیص ، اطلاعات لحظه ای دقیق از نمایه ساز پشته را با به روز رسانی و ردیابی تدریجی پانل تایم لاین ترکیب می کند. مشابه این ابزارها، ردیابی تخصیص پشته شامل شروع یک ضبط، انجام یک سری اقدامات و سپس توقف ضبط برای تجزیه و تحلیل است.
این ابزار در طول ضبط به صورت دورهای عکسهای فوری پشتهای میگیرد (به دفعات هر 50 میلیثانیه!) و یک عکس فوری نهایی در پایان ضبط.
گزارش جدول زمانی تخصیص را ثبت کنید
برای شروع استفاده از ابزار Allocation Timeline ، این مراحل را دنبال کنید:
- پنل حافظه را در DevTools باز کنید.
- تخصیص ها را در نمایه خط زمانی فعال کنید.
- دکمه Start را فشار دهید تا ضبط شروع شود.
نمایه تخصیص پشته را بخوانید
نمایه تخصیص پشته محل ایجاد اشیاء را نشان می دهد و مسیر نگهدارنده را مشخص می کند. در عکس فوری زیر، میلههای بالا نشان میدهند که چه زمانی اشیاء جدید در پشته پیدا میشوند.
ارتفاع هر نوار مطابق با اندازه اشیاء تخصیص یافته اخیر است، و رنگ میله ها نشان می دهد که آیا آن اشیاء هنوز در عکس فوری پشته ای زنده هستند یا خیر. نوارهای آبی اشیایی را نشان میدهند که هنوز در انتهای جدول زمانی زنده هستند، نوارهای خاکستری اشیایی را نشان میدهند که در طول خط زمانی اختصاص داده شدهاند، اما پس از آن زباله جمعآوری شدهاند:
میتوانید بزرگنمایی کنید تا پنجره Constructor را فیلتر کنید تا فقط اشیایی را نشان دهید که در بازه زمانی مشخص شده به آنها اختصاص داده شدهاند. برای بزرگنمایی، ماوس خود را روی بازه زمانی که میخواهید در خط زمانی روی آن تمرکز کنید، بکشید.
با کلیک بر روی یک سازنده خاص در پنجره Constructor درخت نگهدارنده آن در پنجره Retainers نشان داده می شود. بررسی مسیر نگهدارنده به شی باید به شما اطلاعات کافی بدهد تا متوجه شوید که چرا شی جمعآوری نشده است و میتوانید تغییرات کد لازم را برای حذف ارجاع غیر ضروری انجام دهید.
مشاهده تخصیص حافظه بر اساس تابع
همچنین می توانید تخصیص حافظه را با تابع جاوا اسکریپت مشاهده کنید. برای اطلاعات بیشتر به بررسی تخصیص حافظه بر اساس تابع مراجعه کنید.
،از ابزار Allocation timeline برای پیدا کردن اشیایی که به درستی زباله جمع آوری نمی شوند استفاده کنید و به حفظ حافظه ادامه دهید.
ابزار چگونه کار می کند
گزارش جدول زمانی تخصیص ، اطلاعات لحظه ای دقیق از نمایه ساز پشته را با به روز رسانی و ردیابی تدریجی پانل تایم لاین ترکیب می کند. مشابه این ابزارها، ردیابی تخصیص پشته شامل شروع یک ضبط، انجام یک سری اقدامات و سپس توقف ضبط برای تجزیه و تحلیل است.
این ابزار در طول ضبط به صورت دورهای عکسهای فوری پشتهای میگیرد (به دفعات هر 50 میلیثانیه!) و یک عکس فوری نهایی در پایان ضبط.
گزارش جدول زمانی تخصیص را ثبت کنید
برای شروع استفاده از ابزار Allocation Timeline ، این مراحل را دنبال کنید:
- پنل حافظه را در DevTools باز کنید.
- تخصیص ها را در نمایه خط زمانی فعال کنید.
- دکمه Start را فشار دهید تا ضبط شروع شود.
نمایه تخصیص پشته را بخوانید
نمایه تخصیص پشته محل ایجاد اشیاء را نشان می دهد و مسیر نگهدارنده را مشخص می کند. در عکس فوری زیر، میلههای بالا نشان میدهند که چه زمانی اشیاء جدید در پشته پیدا میشوند.
ارتفاع هر نوار مطابق با اندازه اشیاء تخصیص یافته اخیر است، و رنگ میله ها نشان می دهد که آیا آن اشیاء هنوز در عکس فوری پشته ای زنده هستند یا خیر. نوارهای آبی اشیایی را نشان میدهند که هنوز در انتهای جدول زمانی زنده هستند، نوارهای خاکستری اشیایی را نشان میدهند که در طول خط زمانی اختصاص داده شدهاند، اما پس از آن زباله جمعآوری شدهاند:
میتوانید بزرگنمایی کنید تا پنجره Constructor را فیلتر کنید تا فقط اشیایی را نشان دهید که در بازه زمانی مشخص شده به آنها اختصاص داده شدهاند. برای بزرگنمایی، ماوس خود را روی بازه زمانی که میخواهید در خط زمانی روی آن تمرکز کنید، بکشید.
با کلیک بر روی یک سازنده خاص در پنجره Constructor درخت نگهدارنده آن در پنجره Retainers نشان داده می شود. بررسی مسیر نگهدارنده به شی باید به شما اطلاعات کافی بدهد تا متوجه شوید که چرا شی جمعآوری نشده است و میتوانید تغییرات کد لازم را برای حذف ارجاع غیر ضروری انجام دهید.
مشاهده تخصیص حافظه بر اساس تابع
همچنین می توانید تخصیص حافظه را با تابع جاوا اسکریپت مشاهده کنید. برای اطلاعات بیشتر به بررسی تخصیص حافظه بر اساس تابع مراجعه کنید.