UPX 是一种非常流行的、针对 Golang 构建产物的压缩工具,它的压缩率通常很高。
介绍
UPX(Ultimate Packer for eXecutables)是一个开源的、可扩展的、高性能的打包工具,它能将可执行文件压缩到非常小的尺寸,同时仍然能直接运行,因为解压过程是在运行时自动完成的。
安装
安装 UPX:你可以从 UPX 的官方网站或通过包管理器安装
在 macOS 上可以使用
brew install upx
在 Linux 上可以使用
sudo apt-get install upx-ucl
使用
-
构建 Go 程序:使用 go build
命令构建你的程序。
-
压缩:使用 upx
命令压缩生成的可执行文件。
扩展
除了 UPX,还有一些其他的压缩方式和技巧可以帮助你减小 Golang 构建产物的大小,虽然它们可能不是专门用于可执行文件的压缩,但也能起到作用:
- 使用
go build
的编译选项:
go build -ldflags="-s -w"
:这个命令可以移除调试信息(-s
)和符号表(-w
),这会显著减小文件大小。
- 使用压缩算法(如
gzip
或 zstd
):
- 虽然这些工具不能直接压缩可执行文件使其能直接运行,但你可以将构建好的二进制文件打包成一个压缩包。在部署时,先解压再运行。这种方式在传输和存储时非常有用。
总结来说,如果你追求最高的压缩率并且希望构建产物能直接运行,那么 UPX 是一个非常好的选择。 如果你只是想减小文件大小以便传输或存储,并且可以接受部署时多一个解压步骤,那么 gzip
或 zstd
这样的通用压缩工具也是不错的选择。