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

В августе ожидается выход долгожданного обновления Go 1.19, в котором будет пересмотрена модель памяти и добавлены новые типы, призванные улучшить использование атомарных значений. В настоящее время обновление Go 1.19 можно загрузить с сайта go.dev, хотя пока оно остается нестабильным. Согласно примечаниям к выпуску, обновление Go 1.19 приводит модель памяти языка в соответствие с моделями, используемыми в C, C++, Java, JavaScript, Rust и Swift. Оно также вводит несколько новых типов в пакете sync/atomic для упрощения использования атомарных значений, таких как atomic.Int64 и atomic.Pointer(T). Модель памяти Go необходима для определения условий, при которых при чтении переменной одной горутины гарантированно будут наблюдаться значения, полученные при записи в ту же переменную из другой горутины. Примечательно, что Go обеспечивает только последовательную атомику, в отличие от более расслабленных форм, предлагаемых другими языками. В дополнение к пересмотренной модели памяти, Go 1.19 представляет небольшое изменение в языке, исправляющее область видимости параметров типа в объявлениях методов. Это обновление не оказывает влияния на существующие программы. Релиз Go 1.19 следует за знаковым запуском Go 1.18 в марте, который представил столь востребованные возможности дженериков. Go 1.19 также привносит ряд других новых возможностей и усовершенствований, таких как:
- Поддержка мягкого лимита памяти, который охватывает кучу Go и память, управляемую средой выполнения, исключая внешние источники, такие как двоичные отображения и память, управляемую другими языками.
- Уменьшенное распределение планировщиком рабочих процедур GC на незанятые потоки ОС во время периодического цикла GC, когда приложение в основном простаивает.
- Реализация компилятором таблицы переходов для больших целочисленных и строковых операторов switch, что приводит к повышению производительности до 20%.
- Более четкие заголовки, ссылки и списки, поддерживаемые в комментариях doc.
- Распознавание ограничения сборки, unix, в строках go:build.
- Поддержка Linux для 64-битной архитектуры Loongson LoongArch.
Для разработчиков, желающих создавать веб-, мобильные и внутренние приложения на платформе no-code, AppMaster.io предоставляет обширную интегрированную среду разработки, которая генерирует масштабируемые программные решения без необходимости написания кода. Благодаря возможности создавать комплексные приложения за считанные секунды, AppMaster.io идеально подходит для широкого круга клиентов, от малого бизнеса до предприятий.


