Вышла версия Go 1.25 с экспериментальным сборщиком мусора и новым JSON API

Вышла версия Go 1.25 с серьёзными улучшениями в наборе инструментов и среде выполнения, включая экспериментальный сборщик мусора, кодирование/json v2 и новую поддержку тестирования/синтеста.
Команда Go объявила об официальном выпуске языка программирования Go 1.25, который вышел точно по графику, спустя шесть месяцев после версии 1.24. В нём много изменений, затрагивающих практически все аспекты набора инструментов, среды выполнения и стандартной библиотеки.
Одним из самых заметных дополнений стал новый экспериментальный сборщик мусора, предназначенный для повышения производительности при работе с небольшими объектами. В реальных условиях он может сократить накладные расходы на сборку мусора на 10–40 %.
Наряду с этим появилась ещё одна экспериментальная функция — пакет encoding/json/v2, который обещает более быстрое декодирование и более гибкую настройку. Обе функции пока доступны по запросу, что даёт разработчикам возможность опробовать их на ранних этапах и оставить отзыв до того, как они будут окончательно доработаны.
В Go 1.25 по умолчанию используется GOMAXPROCS с поддержкой контейнеров, то есть приложения, работающие в таких средах, как Kubernetes, могут автоматически подстраиваться под ограничения ЦП без ручной настройки. Кроме того, компилятор стал умнее благодаря более быстрому выделению срезов и отладочной информации DWARF5, что позволяет уменьшить размер двоичного файла и ускорить компоновку для больших проектов.
Инструментарий тоже не остался без внимания: новые анализаторы go vet
выявляют распространённые ошибки, а несколько команд go были улучшены, например, появилась возможность игнорировать каталоги в go.mod
или запускать локальный сервер документации с помощью go doc -http
. Также был создан совершенно новый пакет testing/synctest, который упрощает тестирование параллельного кода без привычных проблем.
Наконец, как всегда, есть целый список улучшений стандартной библиотеки — от повышения производительности криптографии до более согласованного синтаксического анализа ASN.1, а также новые функции для работы с сетью и TLS. Поддержка старых версий macOS прекращена, а Go 1.25 стал последней версией для неработающего 32-битного порта Windows/ARM перед его удалением.
Ознакомьтесь с объявлением или проверьте примечания к выпуску, чтобы узнать обо всех изменениях подробнее.
Редактор: Анастасия Богатырчук