Go 1.26: Green Tea GC включили по умолчанию — у кого какие цифры после апгрейда?

Рейтинг: 55.2% · 12 голосов
Python, Rust, Go, C++, C#, Java, Kotlin: синтаксис, паттерны проектирования, производительность, многопоточность и сравнение языков.
Ответить
Аватара пользователя
kube88
Сообщения: 4
Зарегистрирован: 18 май 2026, 02:41

Go 1.26: Green Tea GC включили по умолчанию — у кого какие цифры после апгрейда?

Сообщение kube88 »

Обновили основной API-сервис с 1.25 на 1.26. Главная обновка — Green Tea GC теперь работает по умолчанию (в 1.25 прятался за GOEXPERIMENT=greenteagc, руки так и не дошли попробовать).

Сервис на 16 ядрах, ~3k RPS, много мелких аллокаций на каждый запрос. Метрики за неделю против прошлой: затраты CPU на GC 4.1% → 2.7%, p99 ответа 19 мс → 16 мс. Код не трогали вообще — буквально бесплатные три миллисекунды за смену цифры в Dockerfile.

Делитесь, у кого что вышло. Особенно интересны нагруженные пайплайны с мелкими объектами — под них этот сборщик, как я понимаю, и затачивали.
👍 ❤️1 🔥1 😄1 🤔
✔ Лучший ответ сформирован автоматически — rignoz1
У нас как раз такой кейс: ETL-пайплайн, ~2 млн аллокаций в секунду, тонны мелких структур. Гоняли честный A/B неделю: две идентичные ноды, одна на 1.25 со старым GC, вторая на 1.26. По GODEBUG=gctrace=1: время маркировки минус 38%, общий троупут пайплайна +9-11% в зависимости от типа задач. Паузы как были суб-миллисекундными, так и остались — важно понимать, что Green Tea не про паузы, а про стои…
Перейти к ответу →
Аватара пользователя
rignoz1
Сообщения: 6
Зарегистрирован: 14 май 2026, 03:45

Re: Go 1.26: Green Tea GC включили по умолчанию — у кого какие цифры после апгрейда?

Сообщение rignoz1 »

✔ Лучший ответ — сформирован автоматически
У нас как раз такой кейс: ETL-пайплайн, ~2 млн аллокаций в секунду, тонны мелких структур. Гоняли честный A/B неделю: две идентичные ноды, одна на 1.25 со старым GC, вторая на 1.26.

По GODEBUG=gctrace=1: время маркировки минус 38%, общий троупут пайплайна +9-11% в зависимости от типа задач. Паузы как были суб-миллисекундными, так и остались — важно понимать, что Green Tea не про паузы, а про стоимость всего цикла: сканирование идёт по спанам, а не по отдельным объектам вразброс, отсюда локальность кэша и выигрыш именно на куче мелочи. На больших долгоживущих буферах разницы почти нет.

Практические заметки. Откат, если что-то пошло не так: GOEXPERIMENT=nogreenteagc, пересборка не нужна никакая магия — просто env при сборке. Меряйте через benchstat с десятком прогонов минимум, разницу в 5-7% на глаз вы не увидите, а самовнушение работает в обе стороны. И отдельно: с 1.25 GOMAXPROCS контейнер-аварный — если у вас в проде костыль automaxprocs, его пора сносить, у нас он конфликтовал с新ым поведением при изменении лимитов на лету. Пардон, с новым поведением — клавиатура.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
postgres_andy
Сообщения: 17
Зарегистрирован: 15 май 2026, 08:40

Re: Go 1.26: Green Tea GC включили по умолчанию — у кого какие цифры после апгрейда?

Сообщение postgres_andy »

Дежурный комментарий зануды. Если у вас CRUD на 200 RPS и ORM на рефлексии, то GC у вас болит в последнюю очередь. Снимите pprof, прежде чем радоваться чужим бенчмаркам: у половины сервисов, которые я смотрел за последний год, треть CPU уходит в сериализацию JSON и работу со строками, а сборщик где-то на пятом месте. Апгрейд — это хорошо, но он не заменяет профилирование.
👍2 ❤️ 🔥1 😄 🤔
Аватара пользователя
Omoto
Сообщения: 120
Зарегистрирован: 12 май 2026, 03:05

Re: Go 1.26: Green Tea GC включили по умолчанию — у кого какие цифры после апгрейда?

Сообщение Omoto »

Кстати, про JSON — раз уж зашло. Пробуйте encoding/json/v2 за флагом GOEXPERIMENT=jsonv2: на наших профилях декод ускорился в 2.3 раза, маршалинг — в 1.6. Но совместимость не стопроцентная, гоняйте тесты: у нас всплыло отличие в обработке time.Time и поведении omitempty на пустых слайсах. Вместе с новым GC получается приличный прирост вообще без переписывания кода.
👍1 ❤️ 🔥2 😄 🤔
Аватара пользователя
jodgould
Сообщения: 9
Зарегистрирован: 26 май 2026, 10:01

Re: Go 1.26: Green Tea GC включили по умолчанию — у кого какие цифры после апгрейда?

Сообщение jodgould »

А кто-нибудь сравнивал в k8s с жёсткими лимитами? У нас поды по 2 CPU в Яндекс Облаке, и после переезда на 1.26 троттлинга в метриках заметно меньше. Но мы прыгали сразу с 1.24, так что не могу понять, что сработало — новый GC или контейнер-аварный GOMAXPROCS, который приехал заодно из 1.25.
👍1 ❤️ 🔥2 😄 🤔
Аватара пользователя
radiomaker
Сообщения: 27
Зарегистрирован: 24 май 2026, 00:35

Re: Go 1.26: Green Tea GC включили по умолчанию — у кого какие цифры после апгрейда?

Сообщение radiomaker »

Если прыгали с 1.24 — почти наверняка GOMAXPROCS. Раньше рантайм видел все 64 ядра ноды, плодил процессоры под них, и планировщик упирался в CFS-квоту — отсюда троттлинг. Теперь рантайм сам читает лимиты cgroups. Green Tea сверху добавил, но основной эффект у вас от этого. И поставьте заодно GOMEMLIMIT, если под зажат по памяти — классическая связка, спасает от OOM-киллера на пиках.
👍1 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Языки программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость