你好,我是小X。
曹大最近开 Go 课程了,小X 正在和曹大学 Go。
这个系列会讲一些从课程中学到的让人醍醐灌顶的东西,拨云见日,带你重新认识 Go。
今天介绍几个常用的查看 Go 汇编代码、调试 Go 程序的命令和工具,既可以在平时和同事、网友抬杠时使用,还能在关键时刻打他们的脸。
比如,有同事说这段代码:
package main
type Student struct {
Class int
}
func main() {
var a = &Student{1}
println(a)
}
的执行效率要高于下面这段代码:
package main
type Student struct {
Class int
}
func main() {
var a = Student{1}
var b = &a
println(b)
}
并且给你讲了一通道理,你好像没法辩赢他。怎么办?
直接用一行命令生成汇编代码,马上可以戳穿他,打他的脸。
go tool 生成汇编
其实很简单,有两个命令可以做到:
go tool compile -S main.go
和:
go build main.go && go tool objdump ./main