Go 1.26 в проде: Green Tea GC по умолчанию — поделитесь замерами до/после

Рейтинг: 46.8% · 12 голосов
Python, Rust, Go, C++, C#, Java, Kotlin: синтаксис, паттерны проектирования, производительность, многопоточность и сравнение языков.
Ответить
Аватара пользователя
asyncpro
Сообщения: 17
Зарегистрирован: 15 май 2026, 10:37

Go 1.26 в проде: Green Tea GC по умолчанию — поделитесь замерами до/после

Сообщение asyncpro »

Обновили боевые сервисы с 1.25 на 1.26, где Green Tea GC наконец включили по умолчанию (в 1.25 он жил за GOEXPERIMENT=greenteagc, мы тогда не рискнули). Цифры с нашего API-гейтвея, ~40k RPS, аллокаций много — JSON, строки, мелкие структуры: доля GC в CPU по профилям упала с ~9% до ~5.5%, p99 латентность с 38 мс до 31 мс. При этом второй сервис — gRPC с пулами буферов, почти без мусора — не изменился вообще, что логично. RSS подрос на 3-4%, считаю шумом. Бонусом заметили, что сборка проекта на CI стала чуть быстрее. Отдельный вопрос: json/v2 всё ещё за GOEXPERIMENT=jsonv2, но на наших бенчах декодинг быстрее в 2.4 раза — кто-нибудь уже включал его в проде, какие сюрпризы?
👍1 ❤️2 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — middlewarlock
Про jsonv2 расскажу, мы включили ещё на 1.25 в одном внутреннем сервисе. Скорость — да, всё честно. Но семантика строже: v2 по умолчанию ругается на дублирующиеся ключи и невалидный UTF-8, которые старый encoding/json молча проглатывал, плюс отличаются дефолты по регистру имён полей. По-хорошему это лечит реальные дыры, но «просто переключить флаг» не вышло — неделю чинили тесты и разгребали конт…
Перейти к ответу →
Аватара пользователя
puto
Сообщения: 40
Зарегистрирован: 11 май 2026, 06:02

Re: Go 1.26 в проде: Green Tea GC по умолчанию — поделитесь замерами до/после

Сообщение puto »

У нас разницы ноль, и я бы хотел, чтобы это прозвучало громче победных реляций: Green Tea ускоряет сканирование за счёт обработки мелких объектов целыми страницами, поэтому выигрывают сервисы с большим количеством мелкого мусора. Если у вас аллокации под контролем, объекты крупные или мусора просто мало — чуда не будет. Прежде чем хвалить или ругать, посмотрите GODEBUG=gctrace=1 и долю gc в pprof. И старую истину никто не отменял: правильно выставленные GOGC и GOMEMLIMIT дают больше, чем любая смена сборщика.
👍1 ❤️ 🔥1 😄 🤔
Аватара пользователя
debianmaster
Сообщения: 5
Зарегистрирован: 11 май 2026, 03:57

Re: Go 1.26 в проде: Green Tea GC по умолчанию — поделитесь замерами до/после

Сообщение debianmaster »

А у нас как раз тот случай, где выстрелило: парсим телеметрию, миллионы мелких структур в секунду. Минус 30% времени в GC, и заметил интересное — на нодах с AVX-512 прирост ощутимо больше, чем на старых ксеонах, сканирование там векторизовано. Так что разброс результатов по парку машин — это нормально, не пугайтесь.
👍 ❤️2 🔥 😄1 🤔
Аватара пользователя
middlewarlock
Сообщения: 43
Зарегистрирован: 12 май 2026, 05:30

Re: Go 1.26 в проде: Green Tea GC по умолчанию — поделитесь замерами до/после

Сообщение middlewarlock »

✔ Лучший ответ — сформирован автоматически
Про jsonv2 расскажу, мы включили ещё на 1.25 в одном внутреннем сервисе. Скорость — да, всё честно. Но семантика строже: v2 по умолчанию ругается на дублирующиеся ключи и невалидный UTF-8, которые старый encoding/json молча проглатывал, плюс отличаются дефолты по регистру имён полей. По-хорошему это лечит реальные дыры, но «просто переключить флаг» не вышло — неделю чинили тесты и разгребали контракты с парой внешних партнёров, у которых JSON, скажем мягко, творческий. Рекомендую включать сначала на чтении логов/реплеев трафика и сравнивать поведение со старым декодером.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
nogo487
Сообщения: 16
Зарегистрирован: 14 май 2026, 02:16

Re: Go 1.26 в проде: Green Tea GC по умолчанию — поделитесь замерами до/после

Сообщение nogo487 »

Напомню про смежное, раз уж тема про апгрейды: с 1.25 рантайм сам учитывает cgroup-лимиты при выставлении GOMAXPROCS. Если вы прыгаете в 1.26 с чего-то старого и у вас в контейнерах руками прописан automaxprocs или env GOMAXPROCS — проверьте, что они не конфликтуют. Мы при таком прыжке словили смешное: руками было выставлено больше лимита, после апгрейда троттлинг ушёл и графики стали лучше без единой строчки кода.
👍 ❤️ 🔥1 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

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

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

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