Как устроена сборка мусора в Golang, Дмитрий Кривенко

Поділитися
Вставка
  • Опубліковано 29 вер 2024

КОМЕНТАРІ • 40

  • @MrYanowski
    @MrYanowski 2 роки тому +50

    По поводу LIFO оговорка. Правильно будет последним пришёл - первым ушёл. Last In, First Out

  • @andreipopov2700
    @andreipopov2700 Рік тому +5

    Отличное видео для того что бы разобраться с GC в Go новичку (ИМХО лучшее!).
    Для подготовки к собеседованию самое оно. Какие-то прям тонкости и нюансы уже можно добрать с других ресурсов, например статей на хабре. Но по факту и этого одного видео достаточно, что бы отбить все вопросики.
    Большое спасибо Дмитрию и Evrone Dev.

  • @sadensmol
    @sadensmol Рік тому +13

    чем-то мне эта лекция напоминает студенческие годы - когда ты со шпоры все списал - все правильно и хорошо, но как это все работает - ты вообще не понимаешь )

  • @andrewbondaryuk
    @andrewbondaryuk 2 роки тому +9

    Стек не очищается - просто смещается указатель на вершину стека.

  • @developers-drink-coffee
    @developers-drink-coffee 4 місяці тому +1

    После стека и lifo не стал смотреть дальше

  • @DogLabel
    @DogLabel Рік тому +5

    Большое спасибо! Очень доходчиво. За трюк с балластом отдельный плюс❤️

  • @gonchar-da
    @gonchar-da 2 роки тому +4

    Очень много разбирался со сбором мусора и было много непонятных моментов, но почти на все мои вопросы в этом видео я получил ответ
    Дмитрий, больше спасибо!

  • @zoomer0
    @zoomer0 Рік тому +4

    Чел как будто не готовился к докладу, постоянно ошибки в речи

  • @Iyozy
    @Iyozy Рік тому +2

    Насколько это вообще нормальная идея построить хранилище для большого объема данных на хэш таблицах.
    Получается при каждом запуске GC будет обходить их все и конкурировать с основной программой, что для высоконагруженного сервиса будет катастрофой.
    Решаема ли такая задача в принципе. Может можно как-то спрятать эти таблицы от GC.

  • @dmitryibaranov6763
    @dmitryibaranov6763 2 роки тому +9

    Куча ошибок ! Текст по листочку. Что за срань ? Если он так и программирует - плакать хочется.

  • @Aleksei-k3d
    @Aleksei-k3d Рік тому +4

    Очень по верхам, хотелось бы подробнее. Потому что эту информацию можно и в обычной статье прочитать с точно такой же подачей

    • @zoomer0
      @zoomer0 Рік тому +1

      Не поверхностно посмотри исходный код в гитхабе

    • @plaintext7288
      @plaintext7288 10 місяців тому +1

      ​@@zoomer0just read the docs, bro 😂😂😂

  • @deniszzz6744
    @deniszzz6744 2 роки тому +3

    Аллокатор памяти в Go основан на допиленном TCMalloc. Проблема фрагментации памяти больше не проблема.

  • @olegusov1621
    @olegusov1621 2 роки тому +2

    А откуда сборщик мусора берёт список объектов? При вызове new какая-то информация сохраняется?

  • @TomCat-ox8iu
    @TomCat-ox8iu 2 роки тому +12

    Вы прежде чем других учить прочли бы хоть какую-нибудь базовую книжецу по Go) В первом же примере косяк, т.к обе переменные stackVar и heapVar будут размещены в стеке. Дальше смотреть не стал

  • @vitalyisaev2
    @vitalyisaev2 2 роки тому +2

    Почему на 22 слайде включение write barrier и start the world стоят вместе? Вроде бы выше было сказано, что write barrier включается именно при stop the wrold.

    • @Jonatanail
      @Jonatanail Рік тому +1

      А в чем несоответствие? Нигде же не говорилось, что write barrier работает только при stop the world. STW нужен только для его включения.

  • @svfastunov
    @svfastunov 2 роки тому +3

    Про балласт. А как обойти ругню компилятора на неиспользуемую переменную?

  • @artyomecheistov
    @artyomecheistov 10 місяців тому +1

    LIFO - ПОСЛЕДНИЙ пришел первый вышел
    Last in first out

  • @ДмитрийШишов-й7б

    LIFO - это последний пришел первый вышел

  • @haiwiaksbab7362
    @haiwiaksbab7362 5 місяців тому

    вебка IA буд то бы сгенерирована

  • @abidin592
    @abidin592 10 місяців тому +1

    0:57 стэк первый пришел первый вышел? Нет же, последний первым выходит

  • @FigisBadralov
    @FigisBadralov 2 місяці тому

    Сколько сегментов в хипе?

  • @milestrifonov
    @milestrifonov 2 роки тому +2

    На слайде со стеком и кучей не совсем понятно, я где-то прочитал и был уверен, что голанг сам решает, где создать переменную, скрывая это от программиста. Насколько я могу быть неправ?

    • @victorstolenets2863
      @victorstolenets2863 2 роки тому +1

      Так и есть, в примере кода на видео stackVar будет убегать в кучу, стек горутин динамический (может менять размер)

    • @ennwy
      @ennwy 2 роки тому +1

      есть определенные правила, по которым компилятор решает, где выделять память, при инициализация переменная проходит некоторые "проверки" и если она не прошла хоть один из так званых тестов, то память аллоцируется на куче, иначе в стеке )

  • @kandidat8134
    @kandidat8134 3 місяці тому

    10

  • @PsyMaza
    @PsyMaza Рік тому +1

    Разве в го не динамический стек ?

  • @arsnick11
    @arsnick11 2 роки тому +6

    Спасибо. Все подробно и по делу! Ждем новых докладов/видео от Дмитрия!

  • @if_err_not_nil
    @if_err_not_nil 8 місяців тому +1

    Великолепно! Спасибо!

  • @TheDavBag
    @TheDavBag 2 роки тому +2

    отличный доклад! в первом публичном представлении казался чуть скучным, но пересмотрев, понравился больше.
    помянул ситимобил :(

  • @null6216
    @null6216 2 роки тому +4

    Спасибо за доклад!

  • @brothers_karamazovs
    @brothers_karamazovs 2 роки тому +3

    Отличный доклад, спасибо!

  • @DenisssNovikov
    @DenisssNovikov 2 роки тому +3

    2:30 В С++ есть подход RAII, который позволяет обойтись без ручного высвобождения ресурсов. Если писать код с учётом нескольких простых правил, то в С++ стандартных проблем, - когда забыл вызвать `delete`, - с утечками памяти не возникнет.

    • @olegusov1621
      @olegusov1621 2 роки тому +5

      Удивительно, что умные указатели (работающие по принципу RAII) появились ещё в 11 стандарте (если кто не в курсе 11 он назван в честь года выхода - 2011), а мифы об утечках из-за забытого delete всё ещё всплывают.
      За время работы на плюсах практически не встречал ручного высвобождения ресурсов, только в легаси.

    • @nikhrom3551
      @nikhrom3551 2 роки тому +1

      ​@@olegusov1621 К сожалению, ручное освобождение ресурсов встречается не только в легаси. У многих в голову слишком въелся подход "не платить за то, что не требуется", который они воспринимают через чур строго, и такие люди не собираются разбираться в умных указателях просто потому, что у плюсов есть обычные указатели, которые самые лучшие и самые быстрые на свете (unique_ptr : "Да да, пошёл я нафиг")