= 1; i < 5000000; i++) {
tmp.push(i);
}
btn.tmp = tmp;
document.body.appendChild(btn);
document.body.removeChild(btn);
Этот код вызывает утечку памяти, при удалении элемента массив продолжает занимать место в памяти.
Вопрос — почему? Верно ли я предполагаю, что сборщик мусора просто не в курсе про btn.tmp, поэтому он его не очищает? Или как это устроено?
Проблема устраняется, если перед удалением кнопки вручную очистить поле btn.tmp = null
Об'єкт ніде ж не дівається. Неважливо, є він в DOM чи ні
А почему не девается? Фактически к нему нет доступа с корневого window, а значит он является мусором, однако сборщик его не удаляет
Як ти перевіряєш, видалив його gb чи ні? І чи взагалі, в момент перевірки, вже був викликаний gb
На вкладке memory вижу что при выполнении кода приложение вырастает, но при удалении элемента — не уменьшается
Обсуждают сегодня