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
打赏

本文固定链接: https://www.cxy163.net/archives/3004 | 绝缘体

该日志由 绝缘体.. 于 2024年01月30日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: go压缩可执行文件大小 | 绝缘体
关键字: , , , ,

go压缩可执行文件大小:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter