Facebook JavaScript-də yaddaş sızmalarını aşkar etmək üçün açıq mənbəli çərçivə

Facebook (Rusiya Federasiyasında qadağandır) dinamik olaraq ayrılmış yaddaşın (yığın) vəziyyətinin dilimlərini təhlil etmək, yaddaşın idarə edilməsinin optimallaşdırılması strategiyalarını müəyyən etmək və kodun icrası zamanı baş verən yaddaş sızmalarını müəyyən etmək üçün nəzərdə tutulmuş memlab alət dəstinin mənbə kodunu açıb. JavaScript. Kod MIT lisenziyası altında açıqdır.

Çərçivə vebsaytlar və veb proqramları ilə işləyərkən yüksək yaddaş istehlakının səbəblərini təhlil etmək üçün yaradılmışdır. Məsələn, Facebook.com veb-saytının yeni versiyasından istifadə zamanı yaddaş istehlakını təhlil etmək üçün memlab istifadə edilib ki, bu da boş yaddaşın tükənməsi səbəbindən brauzerin müştəri tərəfində sıradan çıxmasına səbəb olan sızmaları müəyyən etməyə imkan verib.

JavaScript kodunu yerinə yetirərkən yaddaş sızmasının səbəbləri zibil kollektorunun obyektin tutduğu yaddaşı boşaltmasına, dəyərlərin ağılsızca keşləşdirilməsinə və ya köhnə siyahı elementlərini çıxarmadan sonsuz sürüşmənin həyata keçirilməsinə mane olan gizli obyekt istinadları ola bilər. Məsələn, Chrome-da aşağıdakı kodda, "obj" obyektinə görə yaddaş sızması baş verir, ona null dəyəri təyin edilməsinə baxmayaraq, Chrome veb konsolunda daha sonra yoxlamaq üçün çıxış obyektlərinə daxili istinadları saxlayır. . var obj = {}; console.log(obj); obj = null;

Memlabın əsas xüsusiyyətləri:

  • Brauzerdə yaddaş sızmasının aşkarlanması. Memlab sizə dinamik yaddaş vəziyyətinin anlık görüntülərini avtomatik müqayisə etməyə, yaddaş sızmalarını aşkar etməyə və nəticələri ümumiləşdirməyə imkan verir.
  • Öz sızma aşkarlama alqoritmlərinizi həyata keçirməyə və yığın vəziyyətinin anlıq görüntülərini təhlil etmək üçün sistemləri həyata keçirməyə imkan verən yığın iterasiyası üçün obyekt yönümlü API. Yığın analizi Chromium mühərrikinə əsaslanan brauzerlər, həmçinin Node.js, Electron və Hermes platformaları üçün dəstəklənir.
  • Yaddaş istifadəsini optimallaşdırmaq imkanlarını tapmaq üçün komanda xətti interfeysi və API.
  • Node.js üçün təsdiq sistemi. Sizə vahid testlər yaratmağa və öz vəziyyətinizin dilimlərini yaratmaq, yaddaşınızı sınamaq və ya genişləndirilmiş təsdiq yoxlamaları yazmaq üçün Node.js əsasında proqramlar işlətməyə imkan verir.

Mənbə: opennet.ru

Добавить комментарий