2016-08-26 26 views
1

私はGolangで書かれたゴリラ/ muxベースのWebサービスを持っています。 正確に同じコードが私のWindows 10 Proマシンでは10 MB以上のサイズのバイナリを生成するのに対し、同僚のWindows 10 Pro Machineでは約7 MBのバイナリを生成しています。 OS X Yosemiteを実行している同僚のMacBook Proでは、バイナリのサイズは11 MBを少し超えています。 このバイナリには実際に何が含まれていますか?Golang - なぜ同様のマシンでコンパイルするとバイナリファイルのサイズが大きく異なるのですか?

答えて

4

異なるアーキテクチャ(GOARCHのenv変数)が原因である可能性があります。確認するためにgo envを実行します。 とamd64にコンパイルされたバイナリは大幅に異なります(amd64にコンパイルするとかなり大きくなります)が、アーキテクチャが異なる場合は近いはずです。

また、Goバージョン自体は多くの点で問題がありますが、Go 1.7ではコンパイルされたバイナリサイズが縮小されています。詳細については、ブログ投稿Smaller Go 1.7 binariesを参照してください。

また、同じことを前提としていますが、デバッグ情報を除外するかどうかによって、コンパイルされたバイナリサイズが大幅に縮小される可能性があります。

+0

ありがとうございました!私はそのデバッグ情報の部分を推測するが、私は調査し、それが何であるかを見るだろう。 –

関連する問題