01 сент. 2021 г.·1 мин

Производственный выпуск Go 1.17: Упрощенное кодирование для повышения безопасности и производительности

В последнем производственном выпуске языка программирования Go 1.17 от Google с открытым исходным кодом представлены усовершенствования языка и компилятора для повышения безопасности и производительности. Новые возможности включают более эффективный метод передачи аргументов функций с помощью регистров и упрощенное кодирование для безопасных операций с указателями.

Производственный выпуск Go 1.17: Упрощенное кодирование для повышения безопасности и производительности

Go 1.17, последнее обновление языка программирования с открытым исходным кодом от Google, было выпущено для улучшения безопасности и производительности. В этом производственном релизе представлены улучшения языка и компилятора, направленные на оптимизацию кодирования для обеспечения безопасности и более производительный метод передачи аргументов функций.

В официальных заметках к релизу освещаются три небольших изменения в языке, два из которых направлены на упрощение написания кода, соответствующего правилам безопасности unsafe.Pointer. Эти три улучшения включают в себя:

В дополнение к этим улучшениям языка, Go 1.17 также представляет новую технику компилятора для передачи аргументов и результатов функций с использованием регистров, а не стека. Это изменение было включено для Linux, MacOS и Windows на 64-битной архитектуре x86. По данным эталонных тестов, это обновление приводит к повышению производительности примерно на 5% и типичному уменьшению размера двоичных файлов примерно на 2%. Важно отметить, что это изменение не влияет на функциональность безопасного кода Go. Кроме того, компилятор теперь позволяет вставлять функции, содержащие замыкания, что может привести к появлению отдельных функций-указателей кода замыкания для каждого места вставки функции.

Еще одной ключевой особенностью Go 1.17 является введение обрезанных графов модулей. Графы модулей, указывающих в файле go.mod версию Go 1.17 или выше, будут включать только непосредственные зависимости от других модулей Go 1.17, а не все их транзитивные зависимости.

Разработчики могут загрузить Go 1.17 с сайта golang.org. Предыдущая версия, Go 1.16, была выпущена в феврале и принесла улучшения в библиотеку и среду выполнения. Текущие стабильные релизы включают Go 1.16.5 и Go 1.15.13. В будущем релизе языка планируется включить возможность фаззинга для разработчиков Go. Go 1.17 вошел в стадию бета-релиза 10 июня.

Разработчики, желающие создать веб-приложения, бэкенд или мобильные приложения, могут воспользоваться такими платформами, как AppMaster.io, которые предлагают мощную среду разработкиno-code, ускоряющую процесс разработки и обеспечивающую масштабируемость для корпоративных и высоконагруженных сценариев использования.

Легко начать
Создай что-то невероятное

Экспериментируйте с AppMaster с бесплатной подпиской.
Как только вы будете готовы, вы сможете выбрать подходящий платный план.

Попробовать AppMaster