TGViewer
Golang Golang @golang_google · 40.5K subscribers
Post #3614 10.9K
Go 1.27 подменил движок encoding/json. Замерил три конфигурации и нашёл, где стало хуже

В Go 1.27 пакет encoding/json остался тем же по API и перестал быть тем же внутри: теперь это тонкий слой совместимости поверх нового encoding/json/v2. Обещание Go 1 выполняется честно, старый код компилируется и ведёт себя как раньше, но цифры под ним поменялись, причём в обе стороны. Я собрал go1.27.0 из исходников, взял старый go1.24.7 для контроля и прогнал одинаковые бенчмарки в четырёх конфигурациях. Разбор ниже: где выиграли, где потеряли полтора раза на ровном месте, что именно уже изменилось в выводе v1, и какие грабли ждут при переходе на v2.

Коротко для тех, кто спешит: анмаршалинг в структуры ускорился примерно в полтора раза без единой правки в коде; анмаршалинг в any и map[string]any замедлился в полтора раза, причина найдена и сводится к одному флагу совместимости; маршалинг стал чуть медленнее по времени, но заметно экономнее по аллокациям; байты на выходе v1 в редких случаях изменились, тексты ошибок изменились чаще; переход на v2 даёт лучшие цифры во всех сценариях, включая any, но ломает семантику в шести местах, из которых одно ломается тихо.

https://habr.com/ru/articles/1078082/
  • 🔥 19
  • 👍 9
  • ❤ 5
  • 🤔 1
  • 😢 1
More from @golang_google
  1. Sep 18, 2026🔥 Rune - быстрый IDE и terminal multiplexer с GPU-рендерингом, который теперь открыт на G…
  2. Sep 16, 2026🔥 Большой гайд по миграции с Go на Rust Для разработчиков переход обычно упирается не в с…
  3. Sep 15, 2026🔥 Yoke - управление пакетами Kubernetes без гор YAML Вместо сложных Helm-шаблонов Yoke по…
  4. Sep 13, 2026🔥 Yzma - прямое подключение `llama.cpp` к Go-приложениям для локального inference Проект…
  5. Sep 12, 2026🐳 Как правильно использовать Docker для Go-приложения - пошаговый гайд Хороший разбор от…
  6. Sep 12, 2026AvitoTech всегда славился своими проектами на День разработчика, но в этот раз ребята прев…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →