«

go压缩可执行文件大小

时间:2024-2-28 16:08     作者:韩俊     分类: Go语言


有时候发布到线上的可执行文件有点大,需要对其进行压缩。

以windows系统为例,现在有一个 demo.exe 大小 1.14M

步骤1

添加构建标志

go build -ldflags="-s -w" demo.go

-s: 省略符号表和调试信息。 大多数情况下,在生产环境中不需要它们。

-w: 省略DWARF消息。

这两个参数不会影响程序的执行,但它会减少可执行文件的大小。

压缩后的大小 825K,减小27%。

步骤2

使用 upx 程序。

下载安装 upx:https://upx.en.softonic.com/download

解压到 D:/upx-3.96-win32

> D:/upx-3.96-win32/upx.exe demo.exe

                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96w       Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
    845312 ->    317440   37.55%    win64/pe     demo.exe

Packed 1 file.

压缩后的大小 310K,又减小60%。

经过这两步,已经压缩到原来的 30%了。

另外,upx 也有 linux 版本的 https://github.com/upx/upx/tags

> cd /mnt/d/dev/php/magook/trunk/server/golang/project/go-ole

> go build -ldflags="-s -w" demo.go

> dpkg --print-architecture

amd64

> wget https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz

> tar -xf upx-3.96-amd64_linux.tar.xz

> upx-3.96-amd64_linux/upx demo

标签: golang

热门推荐