Saki's 研究记录

减小 golang 编译出的程序体积

字数统计: 171阅读时长: 1 min
2021/10/20

安装 upx

1
2
3
4
# CentOS
yum install -y upx
# Mac
brew install upx

进行压缩

参数 -o 指定压缩后的文件名; -9 指定压缩级别,1-9。

1
2
3
4
5
6
7
8
9
10
upx -9 -o gin_admin_empty_upx gin_admin_empty
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2020
UPX 3.96 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 23rd 2020

File size Ratio Format Name
-------------------- ------ ----------- -----------
41493440 -> 13254672 31.94% macho/amd64 gin_admin_empty_upx

Packed 1 file.

查看效果

1
2
3
4
5
ls -lah .
压缩前的文件体积:
-rwxr-xr-x 1 sakishum staff 40M 10 11 11:41 gin_admin_empty
压缩后的文件体积:
-rwxr-xr-x 1 sakishum staff 13M 10 11 11:41 gin_admin_empty_upx

缩小了接近 27MB,效果显著。

注意:UPX 可能并不能正确的压缩所有平台的程序,压缩完成后最好自行在对应平台运行测试一下。

Done.

CATALOG
  1. 1. 安装 upx
  2. 2. 进行压缩
  3. 3. 查看效果