【问题标题】:Golang - why do compilations on similar machines result in significantly different binary file sizes?Golang - 为什么在类似机器上编译会导致二进制文件大小显着不同?
【发布时间】:2016-08-26 15:59:54
【问题描述】:

我有一个用 Golang 编写的基于 gorilla/mux 的 Web 服务。 我观察到完全相同的代码在我的 Windows 10 Pro 机器上生成大小超过 10 MB 的二进制文件,而在我同事的 Windows 10 Pro 机器上生成大约 7 MB。 在另一位同事的运行 OS X Yosemite 的 MacBook Pro 上,二进制文件的大小只有 11 MB 多一点。 这个二进制文件实际上包含什么?!

【问题讨论】:

    标签: go operating-system binaryfiles gorilla


    【解决方案1】:

    这可能是由于不同的架构(GOARCH env 变量)。运行go env 进行验证。编译成386amd64 的二进制文件有很大不同(编译成amd64 明显更大),但如果架构相同,不同操作系统,它应该是接近的。

    Go 版本本身也很重要,Go 1.7 减少了编译后的二进制文件大小。详情见博文Smaller Go 1.7 binaries

    我也假设它是相同的,但是是否排除调试信息可以显着减少编译后的二进制大小。

    【讨论】:

    • 感谢分析!我猜它是调试信息部分,但我会调查并看看它是什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2021-11-07
    • 2021-08-05
    • 2012-11-04
    相关资源
    最近更新 更多