Facebook открыл код фреймворка для выявления утечек памяти в JavaScript

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
19-Сен-2022 23:07

Компания Facebook (запрещена в РФ) открыла исходные тексты инструментария memlab, предназначенного для анализа срезов состояния динамически распределяемой памяти (кучи), определения стратегии оптимизации работы с памятью и выявления утечек памяти, возникающих при выполнении кода на языке JavaScript. Код открыт под лицензией MIT.
Фреймворк был создан для разбора причин большого потребления памяти при работе с web-сайтами и web-приложениями. Например, с помощью memlab проводился анализ потребления памяти при использовании новой версии сайта Facebook.com, который позволил выявить утечки, приводившие к аварийному завершению браузера на стороне клиента из-за исчерпания свободной памяти.
Причинами утечек памяти при выполнении JavaScript-кода может быть наличие скрытых ссылок на объекты, из-за которых сборщик мусора не может высвободить занимаемую объектом память, неразумное кэширование значений или реализация бесконечной прокрутки без вытеснения старых элементов списка. Например в нижеприведённом коде в Chrome утечка памяти возникает из-за объекта "obj", несмотря на то, что ему присваивается значение null, так как Chrome сохраняет внутренние ссылки на выводимые объекты для предоставления возможности их последующего инспектирования в web-консоли.
var obj = {};
  console.log(obj);
  obj = null;
Основные возможности memlab:
  • Выявление утечек памяти в браузере. Memlab позволяет автоматически сравнивать слепки состояния динамической памяти, выявлять утечки памяти и агрегировать результаты.
  • Объектно-ориентированный API для перебора кучи, позволяющий воплощать собственные алгоритмы выявления утечек и реализовывать системы анализа слепков состояния кучи. Поддерживается анализ кучи для браузеров на основе движка Chromium, а также для платформ Node.js, Electron и Hermes.
  • Интерфейс командной строки и API для поиска возможностей по оптимизации использования памяти.
  • Система assert-ов для Node.js, позволяющая создавать unit-тесты и выполнять программы на базе Node.js для создания срезов собственного состояния, проверки своей памяти или написания расширенных assert-проверок.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_facebook, #_memory, #_debug, #_javascript
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 26-Апр 23:58
Часовой пояс: UTC + 5