关于性能:如何提高Golang的编译速度?

How to improve Golang compilation speed?

我正在尝试找到一种使Go程序的编译更快的方法。 当前大约30秒,这使得该项目的处理速度变慢。

当我运行go build -v时,我看到大部分时间都花在编译go-sqlite3(链接到C sqlite库)上。 但是,由于这个库永远不会改变,所以我想知道是否有可能防止构建工具每次都重新编译它?


尝试go install -a github.com/mattn/go-sqlite3,它将把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.10