20 сентября, москва
backend-митап

Сборщик мусора в go: greenteagc, внутрянка и оптимизация

2-х часовой урок вместе с Senior-разработчиком Яндекса: разбираем внутреннее устройство сборщика мусора и ускоряем код до максимума на примере рабочих задач

28 июля ПН, 19:00 МСК

Что будет на уроке
/1
Greenteagc — как устроен и в чём превосходит текущий сборщик мусора
/2
Внутреннее устройство, особенности и подводные камни сборщика мусора в Go
/3
Практическое применение debug.SetGCPercent и debug.SetMemoryLimit
/4
Как профилировать и ускорять сборщик мусора на примере реальных задач

Преподает Senior-разработчик из Яндекса — Игорь Панасюк

разрабатываю платёжный движок, через который проводят платежи все коммерческие сервисы Яндекса
Yandex
лектор по Golang
ITMO
занимаюсь программированием
5+ лет
менторства и преподавания в ИТМО
350+ часов
учеников обучились на моих курсах
> 100
практики на проектах Яндекса
4000+ часов
Запишись на бесплатный урок
{
ффф"public_lesson": {
ффффф"price": free
ффф}
}
Жми на кнопку и заполняй форму регистрации — мы добавим тебя в Telegram-чат урока, где будет запись и ссылка на прямой эфир
28 июля ПН, 19:00
Урок начнется через:
23
14
дней
часов
минут
секунд
14
07
:
:
:
greenteagc и подводные камни сборщика мусора
практика и ускорение кода
запись урока для зарегистрировавшихся
Частые вопросы
Урок подойдет junior/middle Golang-разработчикам. Особых требований к навыкам нет

Остались вопросы?

Если у тебя срочный вопрос, можешь написать нам в Telegram-бот
Если ты готов немного подождать, оставляй вопрос на сайте — мы свяжемся с тобой в ближайшее время

В языке программирования Go под сборщиком мусора (garbage collector, GC) подразумевается встроенный механизм автоматического управления памятью, который освобождает неиспользуемую память, предотвращая утечки и снижая необходимость вручную управлять выделением и освобождением памяти.

Go использует garbage collector с паузами минимальной продолжительности, что делает его подходящим для высоконагруженных систем и многопоточных приложений. Главная цель сборщика мусора в Go — находить объекты в памяти, к которым больше нет ссылок, и очищать их, чтобы освободить ресурсы.

Работа сборщика мусора включает несколько фаз:

1. Маркировка (mark phase): GC определяет, какие объекты доступны из "корней" — глобальных переменных, стека и т. д. Он обходит граф ссылок и помечает все достижимые объекты.

2. Очистка (sweep phase): после маркировки GC освобождает все недостижимые объекты.

3. Компактирование (в Go не используется): некоторые языки перемещают объекты в памяти для уменьшения фрагментации, но Go этого не делает — он управляет фрагментацией другим способом