jinhailang@jinhailang:~/work/purge$ go tool vet -all ./*.go
./purge_test.go:35: possible formatting directive in Log call
./purge_test.go:40: possible formatting directive in Log call
./purge_test.go:117: Println call ends with newline
./purge_test.go:179: possible formatting directive in Log call
./purge_test.go:180: possible formatting directive in Log call
./purge_test.go:181: possible formatting directive in Log call
./purge_test.go:182: possible formatting directive in Log call
./purge_test.go:185: possible formatting directive in Log call
./purge_test.go:193: possible formatting directive in Log call
go tool pprof
实时查看程序运行堆栈信息,收集性能数据,用于程序调优和问题跟踪。非常丰富方便。 1)导入包:
_ "net/http/pprof"
2)在 main 函数添加以下代码浏览器输入
http://localhost:6060/debug/pprof
,可以查看相关运行信息。 更多功能go tool trace
用于程序诊断的工具,更直观的展现程序运行过程,定位延迟,并行化和竞争异常代码。 简单实例:
1)
2)数据收集:
go run main.go > trace.out
3)查看:go tool trace trace.out
更多使用
gotrace 并发 3D 可视化
//todo
go tool vet
用来检查在编译阶段没有发现的错误,比如函数调用错误,错误的操作锁或者原子变量,对于写代码比较马虎的人来说,超级好用,可以避免很多细小的问题。当然,这只是一种辅助工具,发现的问题有限。
检查所有项:
go tool vet -all ./*.go
输出结果:更多使用
race的使用
数据竞争是并发系统中最常见和最难调试类型的错误之一。特别是在Golang中,由于goroutine的使用,这样的问题更容易出现,好在Golang提供了race这个功能。
这个参数会引发CPU和内存的使用增加,所以基本是在测试环境使用,不是在正式环境开启。 更多使用