Compilation des commandes de shell avec cgo_enabled = 0: un goulot d'étranglement de performances
Lors de l'utilisation des opérations de réseau dans les programmes GO, le processus de compilation peut ressentir un ralentissement significatif avec CGO_ENABLED = 0. Ce comportement est observé même dans des programmes minimalistes tels qu'un serveur HTTP de base, où la compilation sans cgo_enabled = 0 prend environ neuf fois plus longue qu'avec elle activée. Lorsque cgo_enabled est défini sur 0, les drapeaux de construction changent. En conséquence, les packages prédéfinis ne peuvent pas être utilisés, conduisant à la recompilation de la majorité de la bibliothèque standard. Ce processus prend beaucoup plus de temps que d'utiliser les packages prédéfinis.
Anthétisant le ralentissement
pour atténuer ce ralentissement, l'indicateur go build -i peut être utilisé. Cet drapeau installe des packages qui ont été construits avec les drapeaux modifiés. Cependant, cette solution a une efficacité limitée car elle accélère les versions ultérieures avec cgo_enabled = 0 tout en ralentissant les versions sans lui.
Une approche plus efficace implique d'utiliser les indicateurs -instalSuffix et -PKGDIR pour spécifier des répertoires personnalisés pour installer des packages construits avec différents indicateurs. Cela permet une compilation rapide des programmes GO avec différents drapeaux. Dans les environnements avec plusieurs modes de compilation, chaque mode peut avoir son propre répertoire désigné, garantissant une compilation efficace pour tous les scénarios.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3