要生成trace跟踪文件,需要使用runtime.trace的功能,具体代码如下
func main() {trace.Start(os.Stderr)defer trace.Stop()...}
生成跟踪文件
go run main.go 2> trace.out
启动可视化界面
go tool trace trace.out
trace 可视化界面具体可以分为以下几个部分
View trace: 查看跟踪
Goroutine analysis: goroutine分析
Network blocking profile: 网络阻塞情况
Synchronization blocking profile: 同步阻塞情况
Syscall blocking profile: 系统调用阻塞情况
Scheduler latency profile: 带哦度延迟情况
User defined tasks: 用户自定义任务
User defined regions: 用户自定义区域
Minimum mutator utilization: 最低mutator利用率