Примеры утечек памяти в JavaScript

Поделиться
HTML-код
  • Опубликовано: 31 мар 2022
  • Утечки памяти происходят, когда браузер по какой-то причине не может освободить память от недостижимых объектов.
    Обычно это происходит автоматически (Управление памятью в JavaScript). Кроме того, браузер освобождает память при переходе на другую страницу. Поэтому утечки в реальной жизни проявляют себя в двух ситуациях:
    1. Приложение, в котором посетитель все время на одной странице и работает со сложным JavaScript-интерфейсом. В этом случае утечки могут постепенно съедать доступную память.
    Страница регулярно делает что-то, вызывающее утечку памяти. Посетитель (например, менеджер) оставляет компьютер на ночь включённым, чтобы не закрывать браузер с кучей вкладок. Приходит утром - а браузер съел всю память и рухнул и сильно тормозит.
    2. Утечки бывают из-за ошибок браузера, ошибок в расширениях браузера и, гораздо реже, по причине ошибок в архитектуре JavaScript-кода. Мы разберём несколько наиболее частых и важных примеров.
    👉Telegram канал: t.me/ln_yt
    👉 Telegram лс: @lnmasterJS
    👉 ВК-сообщество: club194671088
    🔥 Персональный блог: lnblogdjango.herokuapp.com/
    #js #memory_leak

Комментарии • 13

  • @ccjx_space
    @ccjx_space Год назад

    Очень полезно, спасибо! Пожалуйста, продолжайте, у вас хорошо получается - просто, с юмором, по делу и без натужных попыток привлечь внимание как на многих других каналах

  • @artemlobanchikov2270
    @artemlobanchikov2270 Год назад

    Спасибо огромное за такие видео. Такого контента очень не хватает на ютубе

  • @user-fq4pc7fm2z
    @user-fq4pc7fm2z 10 месяцев назад

    Спасибо! полезное видео!

  • @dobermanpharaoh7567
    @dobermanpharaoh7567 Год назад

    Действительно, очень подробное видео по теме! На русском языке это редкость! Большое спасибо за старания! Смотрю до конца!

  • @vaddepro
    @vaddepro 3 месяца назад

    спасибо!🙂

  • @user-hp2cg6px8c
    @user-hp2cg6px8c Год назад

    Чувак, это бомба

  • @centwor1on167
    @centwor1on167 2 года назад

    Спасибо!

  • @MallSerg
    @MallSerg Месяц назад

    Комбо для пробития дна

  • @DenInside
    @DenInside Год назад

    А есть видос про сборщик мусора?

    • @LNMaster_
      @LNMaster_  Год назад

      Конкретно у меня нет

  • @vladislavverner539
    @vladislavverner539 3 месяца назад

    очень жаль, что удаляете комментарии

    • @LNMaster_
      @LNMaster_  3 месяца назад

      На основании чего вы сделали такой вывод ?

    • @vladislavverner539
      @vladislavverner539 3 месяца назад

      @@LNMaster_ извините, ютуб оказывается удалил его из-за того, что я прикрепил ссылку.
      Примитивы в JS тоже лежат в куче, потому что даже примитивы являются объектами, внутри которых лежит много всего. Например, ссылка на прототип, дескрипторы полей и тд. Исключением являются простые числа, что вы у видели в мемори дебаггере с числовой переменной. Когда мы создаем строковую переменную, ее настоящее значение (сама строка) является указателем на участок памяти в куче, а не на стеке. В отличие от C/C++ у нас нет возможности на это как-то повлиять, потому что v8 - виртуальная машина, которая как вы правильно сказали сама управляет памятью и освобождает ее.
      Есть статья в v8 блоге называется Pointer Compression in V8, там про это как раз говорится подробно.