JavaScript-da xotira oqishini aniqlash uchun Facebook ochiq manbali ramka

Facebook (Rossiya Federatsiyasida taqiqlangan) memlab asboblar to'plamining manba kodini ochdi, u dinamik ravishda ajratilgan xotira (uyma) holatini tahlil qilish, xotira boshqaruvini optimallashtirish strategiyalarini aniqlash va kodni bajarishda yuzaga keladigan xotira oqishini aniqlash uchun mo'ljallangan. JavaScript. Kod MIT litsenziyasi ostida ochiq.

Ramka veb-saytlar va veb-ilovalar bilan ishlashda yuqori xotira sarfi sabablarini tahlil qilish uchun yaratilgan. Masalan, Facebook.com veb-saytining yangi versiyasidan foydalanganda xotira sarfini tahlil qilish uchun memlab qo'llanildi, bu esa bo'sh xotiraning tugashi sababli brauzerning mijoz tomonida ishdan chiqishiga olib kelgan oqishlarni aniqlash imkonini berdi.

JavaScript kodini bajarishda xotiraning oqishi sabablari axlat yig'uvchiga ob'ekt egallagan xotirani bo'shatishga, qiymatlarni noto'g'ri keshlash yoki eski ro'yxat elementlarini chiqarib tashlamasdan cheksiz aylantirishni amalga oshirishga to'sqinlik qiluvchi yashirin ob'ekt havolalari bo'lishi mumkin. Misol uchun, Chrome brauzeridagi quyidagi kodda, "obj" ob'ekti tufayli xotira oqishi sodir bo'ladi, garchi u null qiymati bilan tayinlangan bo'lsa ham, chunki Chrome veb-konsolda keyinchalik tekshirish uchun chiqish ob'ektlariga ichki havolalarni saqlaydi. . var obj = {}; console.log(obj); obj = null;

Memlabning asosiy xususiyatlari:

  • Brauzerda xotira oqishini aniqlash. Memlab sizga dinamik xotira holatini avtomatik ravishda solishtirish, xotira oqishini aniqlash va natijalarni jamlash imkonini beradi.
  • Uyumni takrorlash uchun ob'ektga yo'naltirilgan API, siz o'z qochqinlarni aniqlash algoritmlarini amalga oshirish va yig'ish holati oniy tasvirlarini tahlil qilish tizimlarini amalga oshirish imkonini beradi. Uyum tahlili Chromium dvigateliga asoslangan brauzerlar, shuningdek, Node.js, Electron va Hermes platformalari uchun qo‘llab-quvvatlanadi.
  • Xotiradan foydalanishni optimallashtirish imkoniyatlarini topish uchun buyruq qatori interfeysi va API.
  • Node.js uchun assert tizimi oʻz holatingiz boʻlimlarini yaratish, xotirangizni sinab koʻrish yoki kengaytirilgan tasdiqlash tekshiruvlarini yozish uchun Node.js asosida birlik testlarini yaratish va dasturlarni ishga tushirish imkonini beradi.

Manba: opennet.ru

a Izoh qo'shish