Теги сборки
Теги сборки Go (также называемые ограничениями сборки) — это директивы, которые указывают компилятору Go включать или исключать файлы при компиляции. Gin использует теги сборки, чтобы вы могли заменять внутренние реализации или отключать необязательные функции на этапе компиляции без изменения кода приложения.
Это полезно в нескольких сценариях:
- Оптимизация производительности — Замена стандартного пакета
encoding/jsonна более быстрый сторонний кодировщик для ускорения JSON-сериализации в вашем API. - Уменьшение размера бинарного файла — Исключение неиспользуемых функций, таких как рендеринг MsgPack, для получения меньшего скомпилированного бинарного файла.
- Настройка для развёртывания — Выбор различных кодировщиков для разных окружений (например, высоконагруженная продуктовая сборка vs. стандартная сборка для разработки).
Теги сборки передаются инструментарию Go с помощью флага -tags:
go build -tags=<имя_тега> .Вы можете комбинировать несколько тегов, разделяя их запятыми:
go build -tags=nomsgpack,go_json .Доступные теги сборки
| Тег | Эффект |
|---|---|
go_json | Заменяет encoding/json на go-json |
jsoniter | Заменяет encoding/json на jsoniter |
sonic avx | Заменяет encoding/json на sonic (требуются инструкции AVX процессора) |
nomsgpack | Отключает поддержку рендеринга MsgPack |
В этом разделе
Страницы ниже подробно описывают каждый тег сборки:
- Сборка с заменой JSON — Замена стандартного JSON-кодировщика на go-json, jsoniter или sonic для более быстрой сериализации.
- Сборка без MsgPack — Отключение рендеринга MsgPack с помощью тега сборки
nomsgpackдля уменьшения размера бинарного файла.