Go 1.10中Go的build cache和test cache
最近Go发布了1.10版本,引入了cache等重要特性。Russ Cox去年11月份的时候在邮件列表golang-dev里发了一篇帖子说明了这几个变化。帖子的地址是: https://groups.google.com/forum/#!topic/golang-dev/qfa3mHN4ZPA
Build Cache
意思就是会把编译过程的中间结果cache下来,从而实现增量编译。原来需要通过go build -i
命令来实现,现在go build命令默认启用了cache。启用cache后的效果是很明显的,我司的一个大程序的编译时间如下:
- 全新编译,耗时107秒。
- 修改一个文件后,再次编译,耗时22秒。
Test Cache
测试现在也默认启用了cache,在内容没有变化的情况下,对于同样的参数的测试,会直接使用cache的测试结果,也就是同样的测试不会重复跑。当使用cache的结果时,go test命令最后会显示 (cached)
的字样:
➜ ~/go/src/project git:(feature) ✗ $ go test project/dp/master
ok project/dp/master (cached)
Cache Path and Clean Cache
cache默认的存储路径是操作系统所确定的用户缓存目录,但是可以通过GOCACHE环境变量修改。在Ubuntu下的默认cache路径是 ~/.cache/go-build
如果要清除cache,可以使用如下两个命令:
go clean -cache
清除build cache。go clean -testcache
清除test cache。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。