问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

缩减Golang编译后文件大小的三种方法

发布网友 发布时间:22小时前

我来回答

1个回答

热心网友 时间:22小时前

缩减Golang编译后文件大小对资源有限的设备尤为重要。以Mac OS 10.15和Golang版本1.15.2为例,我们对比了两段仅打印"Hello World"的代码。通过编译,发现两者编译后的文件大小相差43倍。这主要是由于Golang程序会静态链接运行时库,而C程序不具此特性。以下是三种缩减Golang程序大小的方法:

方法一:使用GccGo进行编译。GccGo是gcc用于编译Golang的工具。它相较于官方编译器GC,文件大小减少20余倍,缩小到约1MB。

方法二:指定编译参数。使用-GC编译器,通过参数-s去掉符号信息,-w去掉调试信息。这种方法文件大小缩小约25%,从2M缩小到1.5M。

方法三:使用UPX压缩。UPX是一款高级可执行文件压缩器,压缩后的文件体积减少50%-70%。通过UPX压缩后的程序和程序库功能不受影响。在Centos上通过yum安装UPX,在macOS上通过brew安装。使用UPX压缩后,文件大小从1.5M进一步缩小到620K。

综上所述,根据项目需求,可以灵活选择这三种方法中的任意一种,或结合使用,以达到减小Golang程序编译后文件大小的目的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见穿堂风 没有爱情我们一样会快乐的对吗 没有爱情的人会快乐么? 解除合同的效力有什么 合同解除会产生什么法律效力 合同解除后,哪些条款仍具效力? 合同解除产生哪些效力呢 民法典中合同解除产生哪些效力 解除合同的效力有哪些 济南七中学校怎么样 怎么对容器中的 Golang 程序打断点Debug? 彻底解决Golang获取当前项目绝对路径问题 【Golang源码分析】Golang如何实现自举(一) Go语言程序编译注入版本信息,提升Debug速度! GHOST对拷硬盘,高手进! 新买的硬盘 用Ghost分区对分区克隆数据时会出现以下问题么? 逸动蓝鲸版1.4t真实油耗是多少 苹果iPhone 5C屏幕图案在哪? 森源河南森源电气集团 西夏区西夏区-主要产业 西夏区西夏区-城市建设 厦门社保卡补办要多久? 宜宾十大最好玩的景点 宜宾好玩的地方排行榜 宜宾哪里好耍 给推荐一下宜宾好玩的地方,我想去宜宾旅游了~ 宜宾有什么好玩的地方大神们帮帮忙 站票坐火车行李有一个行李箱挺重的,我是女生,拿不到行李架上箱子大概高... 17图库应用商店怎么没有了? 17APP怎么在apple store找不到了 17APP被下架了吗 我的qq好吗4开头算不算带4呀不好吗 golang包管理之vendor 经常吃夜宵会长胖吗 吃夜宵可以长胖吗 皮鞋太大了怎么办? 鞋松爱掉怎么办 怎么样抢红包更快 怎样抢红包最快最多 泉州户口如何迁入厦门?我想在厦门买房落户,没在 厦门呆过!我有个孩子... 辟邪平时戴什么好辟邪平时戴啥好 无法证明资金来源可以定罪吗 强制开通微粒贷可信吗?是真的吗? iphone7手机如何分屏多任务? 抖音蹦蹦蹦那个什么歌抖音蹦蹦蹦蹦蹦英文歌是什么 去深圳红树林哪个地铁出口 青岛市黄岛区红树林珊瑚在哪个地铁站 自己做饭要买哪些东西 自己动手做饭需要做好哪些准备? 炒股十年,通过简单的均线战法实现稳定盈利! 【技巧】操盘手教你看20,60日均线的使用方法!简单实用! 姜城中学是否正常开学