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

Golang-为什么在类似机器上编译会导致二进制文件大小显著不同?,go,operating-system,binaryfiles,gorilla,Go,Operating System,Binaryfiles,Gorilla,我有一个用Golang编写的基于gorilla/mux的web服务。 我观察到,完全相同的代码在我的Windows10Pro机器上生成的二进制文件大小超过10MB,而在我同事的Windows10Pro机器上生成的二进制文件大小大约为7MB。 在另一位同事运行OS X Yosemite的MacBookPro上,二进制文件的大小略大于11MB。 这个二进制文件实际上包含什么 这可能是由于GOARCH env变量的不同架构造成的。运行go env进行验证。编译到386的二进制文件与编译到amd64的二

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

这可能是由于GOARCH env变量的不同架构造成的。运行go env进行验证。编译到386的二进制文件与编译到amd64的二进制文件明显不同编译到amd64的二进制文件要大得多,但如果不同操作系统的体系结构相同,则应该相近

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


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

这可能是由于不同的体系结构GOARCH env变量造成的。运行go env进行验证。编译到386的二进制文件与编译到amd64的二进制文件明显不同编译到amd64的二进制文件要大得多,但如果不同操作系统的体系结构相同,则应该相近

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


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

感谢您的分析!我想这是调试信息部分,但我会调查一下,看看是什么。谢谢你的分析!我想这是调试信息部分,但我会调查一下,看看它是什么。