Como remover código não utilizado em tempo de compilação?

Criamos um pacote Go usado por muitos de nós.

É importado usando o padrãoimport ("package-name") método.

No entanto, em tempo de compilação, todos os nossos utilitários, incluindo os muito pequenos, acabam sendo binários muito grandes.

Extraímos todas as cadeias de caracteres nos utilitários e descobrimos que todo o pacote está sendo compilado em cada utilitário. Incluindo funções que não estão sendo usadas por esses utilitários.

EDIT 1:

Obrigado às pessoas que estão respondendo a esta pergunta.

Aqui está o que estamos vendo:

main.go

package main

import "play/subplay"

func main() {
    subplay.A()
}

play / subplay.go

package subplay

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

func B() {
    fmt.Printf("secret string")
}

A função B () nunca é chamada. No entanto, depois de criar o binário, encontramos a cadeia "cadeia secreta" no arquivo main.exe.

Como podemos remover o código não utilizado dos programas Go em tempo de compilação?

questionAnswers(2)

yourAnswerToTheQuestion