go 编译器优化
减小编译后可执行文件的大小
go build -ldflags '-w -s'
-w 禁止生成 debug 信息,注意使用该选项后,无法使用 gdb 进行调试。
-s 禁用符号表
可以使用 go tool link –help 查看 ldflags 各参数含义。
禁止优化和内联
go build -gcflags '-N -l'
-N 禁止编译优化
-l 禁止内联,禁止内联也可以一定程度上减小可执行程序大小
可以使用 go tool compile –help 查看 gcflags 各参数含义。
-m 打印出编译器做的优化决策,比如内联和逃逸分析
-l -N 禁用所有的优化
-S 打印汇编代码
其他
go build -a 强行对所有涉及到的代码进行重新构建
go build -n 打印编译期间所用到的其他命令,但是并不真正执行它们
参考 go build 常见编译优化
Read other posts