Etiquetas de compilación
Las etiquetas de compilación de Go (también llamadas restricciones de compilación) son directivas que le indican al compilador de Go incluir o excluir archivos durante la compilación. Gin usa etiquetas de compilación para permitirte intercambiar implementaciones internas o deshabilitar características opcionales en tiempo de compilación, sin cambiar ningún código de aplicación.
Esto es útil en varios escenarios:
- Optimización de rendimiento — Reemplazar el paquete
encoding/jsonpredeterminado con un codificador de terceros más rápido para acelerar la serialización JSON en tu API. - Reducción del tamaño del binario — Eliminar características que no usas, como el renderizado MsgPack, para producir un binario compilado más pequeño.
- Ajuste de despliegue — Elegir diferentes codificadores para diferentes entornos (ej. una compilación de producción de alto rendimiento vs. una compilación de desarrollo estándar).
Las etiquetas de compilación se pasan a la cadena de herramientas de Go con la bandera -tags:
go build -tags=<tag_name> .Puedes combinar múltiples etiquetas separándolas con comas:
go build -tags=nomsgpack,go_json .Etiquetas de compilación disponibles
| Etiqueta | Efecto |
|---|---|
go_json | Reemplaza encoding/json con go-json |
jsoniter | Reemplaza encoding/json con jsoniter |
sonic avx | Reemplaza encoding/json con sonic (requiere instrucciones de CPU AVX) |
nomsgpack | Deshabilita el soporte de renderizado MsgPack |
En esta sección
Las páginas a continuación cubren cada etiqueta de compilación en detalle:
- Compilar con reemplazo de JSON — Reemplazar el codificador JSON predeterminado con go-json, jsoniter o sonic para una serialización más rápida.
- Compilar sin MsgPack — Deshabilitar el renderizado MsgPack con la etiqueta de compilación
nomsgpackpara reducir el tamaño del binario.