Facebook нь JavaScript дээр санах ойн алдагдлыг илрүүлэх нээлттэй эх сурвалжтай хүрээ

Facebook (ОХУ-д хориглосон) нь динамикаар хуваарилагдсан санах ойн (овоолон) төлөв байдалд дүн шинжилгээ хийх, санах ойн менежментийг оновчтой болгох стратегийг тодорхойлох, кодыг ажиллуулах явцад тохиолддог санах ойн алдагдлыг тодорхойлох зорилготой memlab хэрэгслийн эх кодыг нээлээ. JavaScript. Код нь MIT лицензийн дагуу нээлттэй байна.

Вэбсайт болон вэб програмуудтай ажиллахад санах ой их зарцуулдаг шалтгааныг шинжлэх зорилгоор уг хүрээг бүтээсэн. Жишээлбэл, Facebook.com вэб сайтын шинэ хувилбарыг ашиглах үед санах ойн зарцуулалтыг шинжлэхэд memlab ашигласан бөгөөд энэ нь сул санах ой дууссаны улмаас үйлчлүүлэгчийн тал дээр хөтөч гацахад хүргэсэн алдагдлыг тодорхойлох боломжтой болсон.

JavaScript кодыг ажиллуулах үед санах ой алдагдах шалтгаан нь хог цуглуулагч нь тухайн объектын эзэлдэг санах ойг чөлөөлөх, утгыг ухаалгаар кэш хийх, эсвэл жагсаалтын хуучин элементүүдийг гаргахгүйгээр хязгааргүй гүйлгэхээс сэргийлдэг далд объектын лавлагаа байж болно. Жишээлбэл, Chrome-ын доорх кодонд, "obj" объектын улмаас санах ойн алдагдал гарч ирдэг, энэ нь null гэсэн утгатай байсан ч Chrome нь гаралтын объектуудын дотоод лавлагааг дараа нь вэб консол дээр шалгах зорилгоор хадгалдаг. . var obj = {}; console.log(obj); obj = null;

Memlab-ийн үндсэн шинж чанарууд:

  • Хөтөч дээрх санах ойн алдагдлыг илрүүлэх. Memlab нь санах ойн динамик төлөвийг автоматаар харьцуулах, санах ойн алдагдлыг илрүүлэх, үр дүнг нэгтгэх боломжийг олгодог.
  • Нэвчилтийг давтахад зориулагдсан объект хандалтат API нь алдагдлыг илрүүлэх алгоритмыг хэрэгжүүлэх, овоолгын төлөвийн агшин зуурын агшинд дүн шинжилгээ хийх системийг хэрэгжүүлэх боломжийг танд олгоно. Chromium хөдөлгүүрт суурилсан хөтчүүд болон Node.js, Electron, Hermes платформуудад овоолгын шинжилгээг дэмждэг.
  • Санах ойн ашиглалтыг оновчтой болгох боломжийг хайж олоход зориулсан тушаалын мөрийн интерфейс ба API.
  • Node.js-д зориулсан assert систем нь танд өөрийн төлөвийн зүсмэлүүдийг үүсгэх, санах ойгоо шалгах эсвэл өргөтгөсөн баталгаажуулалтын шалгалт бичих зорилгоор Node.js дээр тулгуурлан нэгжийн тест үүсгэх, програм ажиллуулах боломжийг олгодог.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх