Golang - 为什么类似机器上的编译导致二进制文件大小明显不同?

时间:2016-08-26 06:58:43

标签: go operating-system binaryfiles gorilla

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

1 个答案:

答案 0 :(得分:4)

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

Go版本本身也很重要,Go 1.7减少了编译的二进制文件大小。有关详细信息,请参阅博文Smaller Go 1.7 binaries

此外,我认为它是相同的,但是是否排除调试信息可以显着减少编译的二进制文件大小。