Управление памятью и сборщиком мусора в Go
Вставка
- Опубліковано 12 лип 2023
- 22 мая Нина сделала новый доклад на Go-митапе в Москве: ua-cam.com/users/live5BTrGM5ElAA
Слайды: prog.msk.ru/downloads/go-garb...
Репозиторий: github.com/PakshNina/gc
Разработчики языка Go утверждают, что можно не задумываться о том, как работает сборщик мусора. Но бывают ситуации, когда понимание внутренних механизмов очистки динамической памяти может помочь оптимизировать ваше приложение и избежать многих проблем.
13 июля в своем докладе Нина Пакшина расскажет, на что можно рассчитывать от сборщика мусора, как им можно управлять и как мягкое управление памятью помогает избежать ошибки Out-Of-Memory.
В докладе будут освещены полезные инструменты для анализа динамической памяти, а также будет рассказано, как можно вручную аллоцировать память с помощью новой экспериментальной фичи Arena из свежей версии Go.
В организации нам помогает наш партнёр SBTG.RU(sbtg.ru/). Трансляции в любых конфигурациях под ключ.
Чтобы быть в курсе IT-событий, подпишитесь на телеграм-канал ITMeeting(itmeeting.ru/). Это наши друзья, которые анонсируют бесплатные мероприятия в Москве и Онлайне. Здесь вы найдёте и конференции, и митапы, и семинары - форматы на любой вкус. Канал анонсирует и наши встречи. Подписывайтесь.
Ну вот когда классно, тогда классно! Браво, Нина!! 👏 Получил огромное удовольствие и пользу от просмотра!
Отличный доклад на простом языке!!!
Большое спасибо за интересный и полезный доклад!
Очень интересный доклад. Спасибо, Нина!
Крутой доклад, разжевано максимально доходчиво. ❤
Нина, спасибо за доклад!
Спасибо за обратную связь)
Отличный доклад, спасибо
Спасибо!
Спасибо!
Это жирный плюс в карму. Но ссылку на репку я так и не нашёл.
Извините, забегались. Добавили ссылку в описание.
спасибо - мой случай. Очень помогли. частенько контейнер отваливался аутофмемори :)
спасибо!
лучшая
у меня только один вопрос: как линтер пропустил комментарии без точки в конце?))
Спасибо за доклад и ссылки.
Кошмар, безобразие. Он просто был не настроен)
Спасибо большое. Но "утечка данных" у Яндекса бывает. А тут речь об утечке памяти.
Спасибо за замечание, оговорилась)
А как gc в первый раз вызывается? Изначально живая куча же 0 или я не прав?
Хороший доклад, дающий толчок к более глубокому самостоятельному изучению всех аспектов управления памятью в Go. Прекрасная докладчица! Одно все время напрягало - выступавшая с докладом девушка как будто дико стеснялась использовать грамотный литературный русский язык, не могла позволить себе говорить без речевых ошибок почти в каждом предложении. Может быть, это такая стилистика теперь, и это воспринимается как что-то официально-умное и вместе с тем неформально-ненапряжное в речи? Много у кого это вижу :)
08:25 ошибка
1 280 185 040 ns = 1.2 s
а не 1 миллисекунда
как бы много мусора = много времени на маркировку и удаление
поправьте если не прав
всё верно. Нано - 10^-9 => 1,2s
Единственное, это поле Старт т.е. временная метка запуска GC от начала исполнения программы.)
А время работы GC Wall Duration = 721,248nm => 721 микроСекунда)
в первом примере по просмотру времени работы общее время работы GC составило 8.5 milis т.к. было частое срабатывание. Каждое срабатывание требовано 225 micros. Вот и накопилось.
Т.е. явно показано, что большой буфер GC увеличивает нагрузку на память, но уменьшает процессорное время. В первом случае 20МБ и 8мс, во втором 1000МБ и 721микрос
Маркировка не входит во время работы GC, на сколько мне помнится. Она не вызывает Stop The World.
кроме стека и кучи есть еще кэш процессора
В каком контексте его можно здесь использовать?