需求
在使用go编译程序的时候,即时是一个入门的hello程序,编译后的大小都挺大的,如以下这个hello程序
package main
import "fmt"
func main() {
fmt.Print("HelloWorld!")
}
生成程序的大小
# du -sh helloWorld
1.9M helloWorld
什么逻辑都还没写,就已经有1.9M的大小的程序了,有必要使用一些手段对生成的目标程序进行压缩
压缩
使用自带的编译压缩参数
go build -ldflags '-w -s' -o main helloWorld.go
效果
# du -sh main
1.3M main
使用upx再进行压缩
upx main
效果
# du -sh main
536K main
结论
验证程序执行正常
# ./main
HelloWorld!
可以看到从原来的1.9M可以压缩到如今的536K,压缩比接近75%,还是非常可观的