减小 golang 编译出程序的体积
-ldflags go build 编译程序时可以通过 -ldflags 来指定编译参数。 -s 的作用是去掉符号信息。 -w 的作用是去掉调试信息。 测试加与不加 -ldflags 编译出的应用大小。 go build -o tmp/frpc ./cmd/frpc -rwxr-xr-x 1 fate staff 12056092 Dec 10 15:49 frpc go build -ldflags "-s -w" -o tmp/frpc2 ./cmd/frpc -rwxr-xr-x 1 fate staff 8353308 Dec 10 15:49 frpc2 UPX 压缩 在某些设备上动辄接近 10MB 的程序大小还是比较大的,这个时候可以采用 UPX 来进一步压缩。好处是占用磁盘空间小了,坏处是程序启动时会先进行一æ¥解压缩,将代码还原到内存中,也就是说占用的内存大小并不会减少,当然,对于现代设备来说,启动的耗时几乎可以忽略。 通过各系统的包管理工具一般可以自动安装 UPX。 例如 Centos 上 epel 库 yum install -y upx 。 macos 上通过 brew 安装 brew install upx 。 压缩命令 upx -9 -o ./frpc2_upx ./frpc2 -o 指定压缩后的文件名。 -9 指定压缩级别,1-9。 压缩后的文件体积