需求
在使用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%,还是非常可观的

本文探讨了Go编译后程序大小的问题,即使是最简单的`Hello World`程序也有1.9M。通过使用Go编译器的压缩参数`-w -s`,程序大小减小到1.3M,再结合UPX进一步压缩,程序体积降至536K,压缩比例达到75%。实验验证了压缩后的程序执行正常。
248

被折叠的 条评论
为什么被折叠?



