Grow with AppMaster Grow with AppMaster.
Become our partner arrow ico

Go 1.20 представляет предварительный просмотр для оптимизации с помощью профиля и языковых улучшений

Go 1.20 представляет предварительный просмотр для оптимизации с помощью профиля и языковых улучшений

Go 1.20, производственный релиз созданного Google языка с открытым исходным кодом, который славится своей простотой, параллельностью и возможностями функционального программирования, был представлен с предварительным просмотром оптимизации с управлением по профилю (PGO) для компилятора. Go 1.20 можно загрузить с официального сайта go.dev.

Благодаря предварительной версии PGO в Go 1.20 инструментарий компилятора может выполнять оптимизацию, специфичную для приложения и рабочей нагрузки, в зависимости от информации о профиле выполнения. Текущий компилятор поддерживает профили процессора pprof, которые можно собрать с помощью пакетов runtime/pprof или net/http/pprof.

Также известная как оптимизация с обратной связью, PGO включает в себя передачу данных профиля из репрезентативных запусков приложения обратно в компилятор для следующей сборки приложения. Используя эту информацию, компилятор может принимать более обоснованные решения по оптимизации. Бенчмарки для репрезентативного набора программ Go показывают, что включение оптимизации встраивания PGO увеличивает производительность примерно на 3-4%. Ожидается, что в будущих выпусках появится больше оптимизаций PGO.

Наряду с введением PGO, Go 1.20 также привносит четыре изменения в язык. Во-первых, возможность преобразования среза в указатель массива, появившаяся в Go 1.17 в 2021 году, теперь распространяется на преобразование среза в массив. Во-вторых, пакет unsafe включает три новые функции: SliceData, String и StringData. Эти функции предоставляют полную возможность конструировать и деконструировать значения срезов и строк, независимо от их точного представления.

В-третьих, спецификация теперь устанавливает, что значения struct сравниваются по одному полю за раз, принимая во внимание поля в порядке их появления в определении типа struct, и останавливаясь на первом несоответствии. В-четвертых, сравнимые типы, такие как обычные интерфейсы, могут удовлетворять сравнимым ограничениям, даже если аргументы типа не являются строго сравнимыми. Это дает возможность инстанцировать параметр типа, ограниченный сравнимыми ограничениями, с аргументом не строго сравнимого типа, например, интерфейсного типа или составного типа, содержащего интерфейсный тип.

В дополнение к этим изменениям языка, Go 1.20 поставляется с различными другими улучшениями, такими как поддержка сбора профилей покрытия кода для программ, включая приложения и интеграционные тесты. В каталоге $GOROOT/pkg больше не хранятся прекомпилированные пакеты для стандартной библиотеки, что уменьшает размер дистрибутива Go и позволяет избежать перекоса инструментальной цепочки C для пакетов cgo. Кроме того, реализация go test -json была усилена для повышения надежности, а команда go version -m теперь читает более широкий спектр двоичных файлов Go, включая DLL-библиотеки Windows и двоичные файлы Linux без разрешения execute.

Go 1.20 также предоставляет экспериментальную поддержку FreeBSD на RISC-V и отключает cgo по умолчанию на системах без инструментария C. Однако Go 1.20 станет последним выпуском, поддерживающим macOS 10.13 High Sierra и 10.14 Mojave, а для Go 1.21 потребуется macOS 10.15 Catalina или более поздняя версия.

No-code Такая платформа, как AppMaster.io, может извлечь большую пользу от внедрения новых оптимизированных языков, таких как Go 1.20. Интегрируя такие мощные инструменты для веб-, мобильных и внутренних приложений, предприятия могут добиться значительных улучшений в производительности, пользовательском опыте и масштабируемости. Узнайте больше о разработке приложенийno-code и low-code , чтобы оставаться впереди технологической кривой.

Похожие статьи

AppMaster на BubbleCon 2024: изучение тенденций No-Code
AppMaster на BubbleCon 2024: изучение тенденций No-Code
AppMaster принял участие в BubbleCon 2024 в Нью-Йорке, где получил новые знания, расширил связи и изучил возможности внедрения инноваций в сфере разработки без кода.
Итоги FFDC 2024: основные выводы с конференции разработчиков FlutterFlow в Нью-Йорке
Итоги FFDC 2024: основные выводы с конференции разработчиков FlutterFlow в Нью-Йорке
Конференция FFDC 2024 (Нью-Йорк) предоставила разработчикам передовые идеи в разработке приложений с FlutterFlow. Сессии под руководством экспертов, эксклюзивные обновления и обмен опытом — такое событие мы не могли пропустить!
Увольнения в сфере технологий в 2024 году: продолжающаяся волна, влияющая на инновации
Увольнения в сфере технологий в 2024 году: продолжающаяся волна, влияющая на инновации
В 2024 году, когда в 254 компаниях, включая таких гигантов, как Tesla и Amazon, будет сокращено 60 000 рабочих мест, продолжится волна увольнений в сфере технологий, которая изменит ландшафт инноваций.
Начните бесплатно
Хотите попробовать сами?

Лучший способ понять всю мощь AppMaster - это увидеть все своими глазами. Создайте собственное приложение за считанные минуты с бесплатной подпиской AppMaster

Воплотите свои идеи в жизнь