web-dev-qa-db-ja.com

Golangのコンパイル速度を向上させる方法は?

Goプログラムのコンパイルを高速化する方法を見つけようとしています。現在は約30秒であるため、プロジェクトの操作に時間がかかります。

go build -vを実行すると、ほとんどの時間がコンパイルに費やされていることがわかります go-sqlite (C sqlite libにリンクしています)。ただし、このライブラリは変更されないため、ビルドツールが毎回これを再コンパイルするのを防ぐことができるかどうか疑問に思っています。

29
laurent

go install -a github.com/mattn/go-sqlite3を試してください。これにより、compiled-against-Go-1.3パッケージが$ GOPATHにインストールされます。

現在、$GOPATH/pkg/の下に古いバージョンがインストールされている可能性があるため、Goはビルドごとにそれを再コンパイルしています。

44
elithrar

これは、1.3にアップグレードしたことが原因である可能性があります

古い(互換性のない)バイナリを削除するために$ GOPATH/pkgを削除する必要がありました。その後、コンパイル結果を再度キャッシュできました。

3
David Budworth

Go 1.10では、go installなどを実行する必要はありません。go buildを使用するだけです。新しいバージョンでは、ビルドキャッシュを使用して、再コンパイルする必要のあるパッケージを決定します。

チェックアウト: https://tip.golang.org/doc/go1.1

0
Inanc Gumus