Что такое MemLab?
Alexey QA noteMemLab — это инструмент для анализа и оптимизации потребления памяти вашими веб-приложениями. Он помогает обнаруживать утечки памяти в e2e сценариях.
Пример кейса для E2E сценария:
Давно замечал, что у иви, после просмотра трейлера, сайт немного начал медленно работать, пишем простой сценарий с вероятной утечкой памяти.
const memlab = require('memlab');
const scenario = {
url: () => 'https://www.ivi.tv/watch/dva-berega',
action: async (page) => {
await page.click('.userControls__hoard .userControls__item_play')
},
back: async (page) => await page.click('.nbl-icon_close_20'),
}
memlab.run({scenario});
Результат 8 утечек

Рассмотрим одну из утечек

Видно, что объекты удерживают ссылки на элементы DOM, которые были удалены из документа, но не освобождены из памяти. Это обычно указывает на утечку памяти, связанную с неправильным управлением DOM-элементами
Что умеет делать?
- Обнаружение утечек памяти в браузере
- Позволяет программно анализировать heap snapshots
- Встроенный набор инструментов и API для поиска возможностей оптимизации памяти, не ограничиваясь только утечками
- Проверка памяти в юнит-тестах.