← к ленте

Полный разбор релиза Go 1.23

Н@ntuzovавтор про «it»
3 нед

Автор завершил глубокий технический разбор Go 1.23, включая анализ аллокаций, рантайма, net/http и SIMD, с практическими примерами и бенчмарками.

Глубокий разбор обновлений языка Go помогает разработчикам лучше понимать внутреннее устройство инструментов, которые они используют ежедневно.

  • Разбор объясняет причины изменений в производительности аллокатора.
  • Материал содержит практические советы по отладке CI после обновления версии.
  • Статья дает понимание работы рантайма, что полезно для оптимизации высоконагруженных систем.
🥂Разбор Go 1.27 полностью дописан! Вы уже, наверно, забыли о том, что вышла новая версия языка, и что я пишу о ней статью.. 😩 В статье появились разделы про аллокации и рантайм, net/http, портируемый SIMD и go fix, а в самом конце чек-лист на случай, если после апгрейда у вас упал CI. А ещё я добавил в большинство запускаемых код-сниппетов, включая старые, переключатель версии, чтобы сравнить новое поведение с прежним (там, где это имеет смысл). Так ещё интересней щупать изменения. Если запутались в истории обновлений этого обзора, можете тыкнуть на дату обновления (в шапке статьи), там будет хронология важных правок. ---- 😩 Честно говоря, на эту статью я потратил неадекватно много времени. Релиз вышел 19 августа, а на дворе уже октябрь. Каждый раз, когда я брал в работу новый пункт из release notes, упирался в вопросу «а почему?». Например, авторы пишут, что мелкие аллокации подешевели «до 30%» на микробенчмарке и примерно на 1% в реальном коде. Откуда такой разрыв? Пришлось лезть в исходники рантайма и гонять разные бенчмарки на трёх машинах. Оказалось, что ускорение выключается, пока сборщик мусора помечает живые объекты. Чем больше программа аллоцирует, тем чаще работает сборщик и тем реже ей достаётся ускорение. А ещё мне хотелось, чтобы всё это читалось интересно и легко, даже сухие разборы бенчмарков. К примеру, я очень долго возился с графиками, пытаясь сделать их максимально понятными, наглядными и простыми. Но оно того стоило. В итоге, обзор релиза превратился в небольшой, но глубокий экскурс во внутрянку актуального Go — как аллокатор раскладывает объекты по спанам, когда запускается сборщик мусора, как были устроены таймеры до 1.23, зачем процессору векторные регистры и др. Так что, даже если сам релиз вам не особо интересен, статья — хороший повод углубить свои знания. Ну и на собеседовании про аллокатор будет что рассказать. Надеюсь, вам понравится! ———— Теперь напьюсь отдохну, и пойду дописывать обновлённую серию статей про Планировщик. Работы непочатый край.. ❤️ Если захотите поддержать мой труд, милости просим в наш закрытый клуб. Я сейчас занимаюсь контентом фуллтайм, и ничего не продаю, поэтому ваша поддержка очень важна.

Кратко (AI)

Автор опубликовал подробный технический разбор релиза Go 1.23. Статья охватывает изменения в рантайме, аллокациях, библиотеке net/http и работе с SIMD, дополняя сухие примечания к релизу глубоким анализом исходного кода и практическими бенчмарками.

Обсуждение

0
В

Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖