ProIT: медіа для профі в IT
2 хв

Найновіша версія мови Go 1.24 покращує продуктивність і підтримку WebAssembly

author avatar ProIT NEWS

Go 1.24, оновлення популярної мови програмування від Google з відкритим вихідним кодом, тепер загальнодоступне із повною підтримкою загальних псевдонімів типів, покращеною продуктивністю та покращеною підтримкою WebAssembly. Як повідомляє InfoWorld, реліз був оприлюднений 11 лютого і його можна завантажити з Go.dev.

У примітках до випуску для Go 1.24 зазначено, що він забезпечує повну підтримку загальних псевдонімів типів, у яких псевдонім типу може бути параметризований як визначений тип. Зараз псевдоніми загального типу можна вимкнути, встановивши GOEXPERIMENT=noaliastypeparams. Це налаштування параметру буде видалено в Go 1.25.

Для WebAssembly Go 1.24 пропонує директивуgo:wasmexportдля програм Go для експорту функцій на хост WebAssembly. Реліз також підтримує створення програми Go як реактора/бібліотеки WASI.

За допомогою команди go в Go 1.24 модулі Go тепер можуть відстежувати залежності виконуваного файлу за допомогою директив tool у файлах go.mod. Це усуває потребу в попередньому обхідному шляху додавання інструментів як порожнього імпорту до файлу з умовною назвоюtools.go.

Команда go tool тепер може запускати ці інструменти на додаток до інструментів, які постачаються з дистрибутивом Go. Крім того, з командою goнова змінна середовища GOAUTH пропонує гнучкий спосіб автентифікації отримання приватних модулів.

Cgo для створення пакетів Go, які викликають код C, тепер підтримує нові анотації для функцій C для покращення продуктивності під час виконання. З цими вдосконаленнями #cgo noescape cFunctionNameповідомляє компілятору, що пам’ять, передана функції cFunctionName, не екранується.

Також #cgo nocallback cFunctionNameповідомляє компілятору, що функція cFunctionName не виконує зворотного виклику до жодної функції Go.

Інші функції й удосконалення в Go 1.24:

  • Численні покращення продуктивності середовища виконання в Go 1.24 зменшили накладні витрати ЦП у середньому на 2–3% за набором репрезентативних тестів. Вони передбачають нову реалізацію вбудованої map на основі Swiss Tables, більш ефективний розподіл пам’яті для малих об’єктів і нову реалізацію внутрішнього м’ютексу під час виконання.
  • Новий аналізатор tests повідомляє про поширені помилки в деклараціях тестів, фаззерах, контрольних тестах і прикладах у пакетах тестів, як-от неправильні підписи або приклади, які документують неіснуючі ідентифікатори. Деякі з цих помилок можуть спричинити невиконання тестів.
  • Внутрішній двійковий і тестовий механізм кешування cmd/go тепер може бути реалізований дочірніми процесами, які реалізують протокол JSON між інструментом cmd/go і дочірнім процесом, названим змінною середовища GOCACHEPROG.
  • Експериментальний пакет testing/synctest підтримує тестування одночасного коду.
  • Пакет debug/elf пропонує підтримку для обробки версій символів у динамічних файлах ELF (виконуваний і компонований формати).
  • Для Linux Go 1.24 вимагає ядра Linux версії 3.2 або новішої.

Go 1.24 слідує за Go 1.23, випущеною у серпні 2024 року, зі скороченим часом створення для оптимізації за допомогою профілю.

Раніше ми повідомляли про топ-12 інструментів із відкритим кодом для розробників у 2025 році.

Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!

Приєднатися до company logo
Продовжуючи, ти погоджуєшся з умовами Публічної оферти та Політикою конфіденційності.