JavaScript-те жадтың ағып кетуін анықтауға арналған Facebook ашық бастапқы негізі

Facebook (Ресей Федерациясында тыйым салынған) динамикалық бөлінген жад (үйме) күйінің бөліктерін талдауға, жадты басқаруды оңтайландыру стратегияларын анықтауға және кодты орындау кезінде пайда болатын жадтың ағып кетуін анықтауға арналған memlab құралдар жинағының бастапқы кодын ашты. JavaScript. Код MIT лицензиясы бойынша ашық.

Фреймворк веб-сайттармен және веб-қосымшалармен жұмыс істеу кезінде жадты көп тұтыну себептерін талдау үшін жасалған. Мысалы, Facebook.com веб-сайтының жаңа нұсқасын пайдалану кезінде жадты тұтынуды талдау үшін memlab пайдаланылды, бұл бос жадтың таусылуына байланысты клиент жағында браузердің бұзылуына әкелген ағып кетулерді анықтауға мүмкіндік берді.

JavaScript кодын орындау кезінде жадтың ағып кетуінің себептері қоқыс жинаушыға объект алып жатқан жадты босатуға, мәндерді дұрыс емес кэштеуге немесе ескі тізім элементтерін шығармай шексіз айналдыруды жүзеге асыруға жол бермейтін жасырын нысан сілтемелері болуы мүмкін. Мысалы, Chrome жүйесіндегі төмендегі кодта нөл мәні тағайындалғанына қарамастан, «obj» нысанына байланысты жадтың ағуы орын алады, өйткені Chrome кейінірек веб-консольде тексеру үшін шығыс нысандарына ішкі сілтемелерді сақтайды. . var obj = {}; console.log(obj); obj = null;

Мемлабтың негізгі ерекшеліктері:

  • Браузердегі жадтың ағып кетуін анықтау. Memlab бағдарламасы жад күйінің динамикалық суреттерін автоматты түрде салыстыруға, жадтың ағып кетуін анықтауға және нәтижелерді біріктіруге мүмкіндік береді.
  • Үйме итерациясына арналған нысанға бағытталған API, ағып кетуді анықтаудың жеке алгоритмдерін іске асыруға және үйме күйінің суретін талдауға арналған жүйелерді енгізуге мүмкіндік береді. Үйме талдауға Chromium қозғалтқышына негізделген браузерлер, сондай-ақ Node.js, Electron және Hermes платформалары үшін қолдау көрсетіледі.
  • Жадты пайдалануды оңтайландыру мүмкіндіктерін табуға арналған пәрмен жолы интерфейсі және API.
  • Node.js жүйесіне арналған бекіту жүйесі, ол бірлік сынақтарын жасауға және жеке күйіңіздің бөліктерін жасау, жадыңызды тексеру немесе кеңейтілген бекіту тексерулерін жазу үшін Node.js негізіндегі бағдарламаларды іске қосуға мүмкіндік береді.

Ақпарат көзі: opennet.ru

пікір қалдыру