go runやgo build した時のコンパイル時間は、プロジェクトが大きくなるにつれて長くなるもの。コンパイルで待たされると、開発効率だけでなく、やる気も落ちてしまいますよね。
そんなときに、以下のコマンドをGoのプロジェクトルートで打ってみてください。
一瞬で3倍ぐらい高速化できるはずです。
rm -rf $GOPATH/pkg
go build -i <コンパイル対象.go>
DONE!
※ rm 打つ前に、$GOPATH
を正しく設定しているかどうかは事前に確認ください ※
なんで速くなるの?
Goでは、以前にコンパイルしたときの中間ファイルが $GOPATH/pkg
以下に保存されます。中間ファイルがあれば、コンパイル時にそれが再利用されるので速いわけです。ただし、Go自体のバージョンや、ライブラリのバージョンが異なる場合には、再度中間ファイルを生成します。これはCPUをブンブン回すので重い。しかも、再度作られた中間ファイルはなぜか保存されず、古い中間ファイルは消えないらしいんですね。これが、ビルドが毎回重くなる原因です。
上のコマンドを打つことで古いキャッシュを消して、バージョンの差異が無い中間ファイルを再生するので、ビルドが速くなるというわけですね!
参考