Goプログラムのコンパイルを高速化する方法を見つけようとしています。現在は約30秒であるため、プロジェクトの操作に時間がかかります。
go build -v
を実行すると、ほとんどの時間がコンパイルに費やされていることがわかります go-sqlite (C sqlite libにリンクしています)。ただし、このライブラリは変更されないため、ビルドツールが毎回これを再コンパイルするのを防ぐことができるかどうか疑問に思っています。
go install -a github.com/mattn/go-sqlite3
を試してください。これにより、compiled-against-Go-1.3パッケージが$ GOPATHにインストールされます。
現在、$GOPATH/pkg/
の下に古いバージョンがインストールされている可能性があるため、Goはビルドごとにそれを再コンパイルしています。
これは、1.3にアップグレードしたことが原因である可能性があります
古い(互換性のない)バイナリを削除するために$ GOPATH/pkgを削除する必要がありました。その後、コンパイル結果を再度キャッシュできました。
Go 1.10では、go install
などを実行する必要はありません。go build
を使用するだけです。新しいバージョンでは、ビルドキャッシュを使用して、再コンパイルする必要のあるパッケージを決定します。
チェックアウト: https://tip.golang.org/doc/go1.1