Maison > développement back-end > Golang > Comment puis-je supprimer le code inutilisé dans Go au moment de la compilation ?

Comment puis-je supprimer le code inutilisé dans Go au moment de la compilation ?

DDD
Libérer: 2024-12-31 07:06:10
original
752 Les gens l'ont consulté

How Can I Remove Unused Code in Go at Compile Time?

Suppression du code inutilisé dans Go au moment de la compilation

Les packages Go sont souvent utilisés par plusieurs modules ou programmes. Bien qu'il ne nécessite qu'un petit sous-ensemble de fonctionnalités, l'ensemble du package peut finir par être compilé dans chaque exécutable. Cela peut entraîner la création de fichiers binaires volumineux comprenant des fonctions et des chaînes inutilisées.

Malheureusement, contrairement à certains autres langages de programmation, Go n'offre actuellement pas de moyen de supprimer explicitement le code inutilisé au moment de la compilation. Le compilateur optimise et supprime le code inaccessible dans une certaine mesure, mais il ne peut pas déterminer le code inutilisé potentiellement accessible, même s'il n'est jamais explicitement appelé.

Ce comportement peut être démontré avec le code suivant :

// play/subplay.go
package subplay

func A() {
    fmt.Printf("this is function A()")
}

func B() {
    fmt.Printf("secret string")
}
Copier après la connexion

Dans le module principal, nous importons le package subplay mais appelons uniquement la fonction A() :

// main.go
package main

import "play/subplay"

func main() {
    subplay.A()
}
Copier après la connexion

Bien que B() ne soit jamais appelée, la chaîne "chaîne secrète" est toujours incluse dans le binaire résultant.

Comme indiqué dans les réponses à cette question, une solution de contournement consiste à tenir compte des dépendances introduites par les packages importés. Par exemple, l'importation de net/http importera également 39 autres packages, ce qui peut augmenter considérablement la taille du binaire, même si aucun de ces packages n'est utilisé.

Bien que le compilateur ne soit pas en mesure de supprimer le code inutilisé, il est toujours essentiel pour optimiser le code pour plus d’efficacité. Éviter les appels de fonctions inutiles, conserver des structures de données simples et minimiser les allocations de chaînes peuvent tous contribuer à réduire la taille des binaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal