home.social

#go_127 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #go_127, aggregated by home.social.

fetched live
  1. Самое интересное в новой версии Go — 1.27

    Всем привет! Меня зовут Паша Агалецкий , я техлид команды платформы разработки Авито . В этой статье я расскажу о новой версии Go — 1.27. Я выбрал для вас самые интересные фичи — те, что влияют на код или дают новые по-настоящему полезные инструменты. Читайте про обновление под катом

    habr.com/ru/companies/avito/ar

    #go #golang #go_127 #generics #generic_methods #json #goroutine_leak #uuid #аллокации_памяти

  2. Go 1.27: generic-методы, которых не видит reflect

    Go 1.27 (на момент написания rc3, финал обещают в августе) приносит generic-методы: метод наконец может объявить собственный тип-параметр. Взял golang:1.27rc3 в Docker и проверил, где у фичи границы. reflect новый метод не видит вообще, хотя go/types на том же типе показывает его в method set — метод доступен компилятору и недоступен через рефлексию, поэтому ни один интерфейс им не удовлетворить, а валидаторы и ORM его не заметят. Померил цену: на 200 инстанцирований с запретом инлайна бинарь с методом больше на 2264 байта, из которых 2000 приходятся на длину имён символов, а не на код; по времени разницы нет — это generic-функция с ресивером и тот же gcshape-стенсилинг. А вот что реально заметит прод на апгрейде: GODEBUG=asynctimerchan=1 теперь роняет процесс до main, encoding/json v1 на движке v2 меняет байты вывода на битом UTF-8, json.RawMessage обзавёлся String() и поменял ваши логи. Плюс замеры нового аллокатора: минус четверть времени на new(16 B) и ноль на 128 байтах. Читать дальше →

    habr.com/ru/articles/1072194/

    #Go #golang #Go_127 #дженерики #generic_methods #reflect #json #GODEBUG