Facebook открыл код фреймворка для выявления утечек памяти в JavaScript
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Компания 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
===========
Похожие новости
- Главная ссылка к новости (https://engineering.fb.com/202...)
- OpenNews: Facebook выделил C++, Rust, Python и Hack в качестве предпочтительных языков программирования
- OpenNews: Facebook опубликовал модель для машинного перевода, поддерживающую 200 языков
- OpenNews: Facebook представил механизм TMO, позволяющий экономить 20-32% памяти на серверах
- OpenNews: Facebook открыл код Lexical, библиотеки для создания редакторов текста
- OpenNews: Facebook открыл код статического анализатора Mariana Trench
Похожие новости:
- В Ubuntu реализована возможность динамического получения отладочной информации
- Facebook выделил C++, Rust, Python и Hack в качестве предпочтительных языков программирования
- Атака на Node.js через манипуляции с прототипами объектов JavaScript
- Facebook опубликовал модель для машинного перевода, поддерживающую 200 языков
- Релиз фреймворка для реверс-инжиниринга Rizin 0.4.0 и GUI Cutter 2.1.0
- Facebook представил механизм TMO, позволяющий экономить 20-32% памяти на серверах
- Intel опубликовал ControlFlag 1.2, инструмент для выявления аномалий в исходных текстах
- Выпуск отладчика GDB 12
- Bloomberg открыл код memray, инструмента профилирования памяти для Python
- Facebook открыл код Lexical, библиотеки для создания редакторов текста
Теги для поиска: #_facebook, #_memory, #_debug, #_javascript
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Дек 22:44
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Компания Facebook (запрещена в РФ) открыла исходные тексты инструментария memlab, предназначенного для анализа срезов состояния динамически распределяемой памяти (кучи), определения стратегии оптимизации работы с памятью и выявления утечек памяти, возникающих при выполнении кода на языке JavaScript. Код открыт под лицензией MIT. Фреймворк был создан для разбора причин большого потребления памяти при работе с web-сайтами и web-приложениями. Например, с помощью memlab проводился анализ потребления памяти при использовании новой версии сайта Facebook.com, который позволил выявить утечки, приводившие к аварийному завершению браузера на стороне клиента из-за исчерпания свободной памяти. Причинами утечек памяти при выполнении JavaScript-кода может быть наличие скрытых ссылок на объекты, из-за которых сборщик мусора не может высвободить занимаемую объектом память, неразумное кэширование значений или реализация бесконечной прокрутки без вытеснения старых элементов списка. Например в нижеприведённом коде в Chrome утечка памяти возникает из-за объекта "obj", несмотря на то, что ему присваивается значение null, так как Chrome сохраняет внутренние ссылки на выводимые объекты для предоставления возможности их последующего инспектирования в web-консоли. var obj = {};
console.log(obj); obj = null;
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Дек 22:44
Часовой пояс: UTC + 5