Добавить
Уведомления

Новый сборщик мусора в Go 1.26! Уже используют в Google | Полное руководство про GC

Материалы из видео - https://t.me/igoroutine/73 Курсы по программированию - https://clck.ru/3QoEcG В этом видео разобран сборщик мусора в Go - от базовых принципов до нового GC в Go 1.26 (Green Tea GC), который уже используется в Google. Видео начинается с мотивации и объяснения, зачем нужен сборщик мусора, какие у него плюсы и минусы и чем автоматическое управление памятью отличается от ручного, включая обзор исследований. Далее последовательно рассматривается, как реализуется сборка мусора: подсчёт ссылок, трассирующие алгоритмы и Mark Sweep. Подробно объясняется, как runtime Go останавливает горутины для сборки мусора, включая блокирующие вызовы, проверки расширения стека и сигналы, а также сравнение с реализациями в других языках — как со сборщиком мусора, так и без него. Отдельный блок посвящён настройкам GC в Go: GOGC и GOMEMLIMIT, практическим демо и примерам оптимизации кода. Разбирается, как runtime Go управляет памятью и выполняет многопоточную разметку объектов. В финале подробно рассматривается новый сборщик мусора Go 1.25 и Go 1.26, основная идея Green Tea GC и применяемые SIMD-оптимизации. Видео будет полезно Go-разработчикам и backend-инженерам, работающим с высоконагруженными системами. Telegram: https://t.me/igoroutine VK: https://vk.com/igoroutine Instagram: https://instagram.com/igoroutine YouTube: https://www.youtube.com/@igoroutine Таймкоды: 00:00:00 - Введение 00:00:27 - Мотивация 00:02:02 - Зачем нужен сборщик мусора. Плюсы и минусы 00:06:12 - Разница между сборщиком мусора и ручным управлением (исследование) 00:09:22 - Как реализовать сборку мусора 00:09:45 - Реализация. Подсчёт ссылок 00:15:08 - Реализация. Трейсинг 00:18:22 - Как остановить все горутины? 00:19:04 - Способ 1. Блокирующие вызовы 00:19:53 - Способ 2. Вставки проверки расширения стека 00:21:55 - Способ 3. Сигнал SIGURG 00:27:59 - Как делают сборку мусора в других языках 00:29:46 - Реализация сборщика мусора на прерываниях (DEMO) 00:33:45 - Языки со сборщиком мусора 00:34:16 - Языки без сборщика мусора 00:35:16 - Настройки сборщика мусора 00:38:11 - Настройка GOGC (DEMO) 00:40:49 - Дополнительный материал 00:41:01 - Настройка GOMEMLIMIT 00:43:38 - Настройка GOMEMLIMIT (DEMO) 00:45:41 - Пример оптимизаций работы сборщика мусора (DEMO) 00:53:57 - Алгоритм сборки мусора Mark Sweep 00:59:08 - Как runtime управляет памятью 01:03:24 - Алгоритм сборки мусора Mark Sweep (продолжение) 01:09:27 - Многопоточная разметка в Mark Sweep GC 01:11:09 - Какой алгоритм в Go? 01:13:22 - Новый сборщик мусора в Go 1.25/1.26 01:20:36 - Основная идея Green Tea GC 01:26:25 - Используемые SIMD опатимизации в Green Tea GC 01:30:46 - Финал

Иконка канала igoroutine
13 подписчиков
12+
10 просмотров
День назад
12+
10 просмотров
День назад

Материалы из видео - https://t.me/igoroutine/73 Курсы по программированию - https://clck.ru/3QoEcG В этом видео разобран сборщик мусора в Go - от базовых принципов до нового GC в Go 1.26 (Green Tea GC), который уже используется в Google. Видео начинается с мотивации и объяснения, зачем нужен сборщик мусора, какие у него плюсы и минусы и чем автоматическое управление памятью отличается от ручного, включая обзор исследований. Далее последовательно рассматривается, как реализуется сборка мусора: подсчёт ссылок, трассирующие алгоритмы и Mark Sweep. Подробно объясняется, как runtime Go останавливает горутины для сборки мусора, включая блокирующие вызовы, проверки расширения стека и сигналы, а также сравнение с реализациями в других языках — как со сборщиком мусора, так и без него. Отдельный блок посвящён настройкам GC в Go: GOGC и GOMEMLIMIT, практическим демо и примерам оптимизации кода. Разбирается, как runtime Go управляет памятью и выполняет многопоточную разметку объектов. В финале подробно рассматривается новый сборщик мусора Go 1.25 и Go 1.26, основная идея Green Tea GC и применяемые SIMD-оптимизации. Видео будет полезно Go-разработчикам и backend-инженерам, работающим с высоконагруженными системами. Telegram: https://t.me/igoroutine VK: https://vk.com/igoroutine Instagram: https://instagram.com/igoroutine YouTube: https://www.youtube.com/@igoroutine Таймкоды: 00:00:00 - Введение 00:00:27 - Мотивация 00:02:02 - Зачем нужен сборщик мусора. Плюсы и минусы 00:06:12 - Разница между сборщиком мусора и ручным управлением (исследование) 00:09:22 - Как реализовать сборку мусора 00:09:45 - Реализация. Подсчёт ссылок 00:15:08 - Реализация. Трейсинг 00:18:22 - Как остановить все горутины? 00:19:04 - Способ 1. Блокирующие вызовы 00:19:53 - Способ 2. Вставки проверки расширения стека 00:21:55 - Способ 3. Сигнал SIGURG 00:27:59 - Как делают сборку мусора в других языках 00:29:46 - Реализация сборщика мусора на прерываниях (DEMO) 00:33:45 - Языки со сборщиком мусора 00:34:16 - Языки без сборщика мусора 00:35:16 - Настройки сборщика мусора 00:38:11 - Настройка GOGC (DEMO) 00:40:49 - Дополнительный материал 00:41:01 - Настройка GOMEMLIMIT 00:43:38 - Настройка GOMEMLIMIT (DEMO) 00:45:41 - Пример оптимизаций работы сборщика мусора (DEMO) 00:53:57 - Алгоритм сборки мусора Mark Sweep 00:59:08 - Как runtime управляет памятью 01:03:24 - Алгоритм сборки мусора Mark Sweep (продолжение) 01:09:27 - Многопоточная разметка в Mark Sweep GC 01:11:09 - Какой алгоритм в Go? 01:13:22 - Новый сборщик мусора в Go 1.25/1.26 01:20:36 - Основная идея Green Tea GC 01:26:25 - Используемые SIMD опатимизации в Green Tea GC 01:30:46 - Финал

, чтобы оставлять комментарии