とコンパイルすることで、 DWARF とシンボルテーブルの情報をバイナリに残さずコンパイルできる。 しかし、自分は気になったので strings コマンドを生成後のバイナリにかけてみた。 するとバイナリには というような行が、まだたくさん残っていた。 どうやら DWARF やシンボルテーブルの情報を削除しても、コンパイルの際のパスなどの情報は残ってしまうようだ。 消してみると 10% くらい節約できた そこで、全て浅いディレクトリでコンパイルしなおしたところ、約 5MB のバイナリが約 4.5MB ほどまで節約できた。 ソースコードを細分化していればしているほど、モジュールを使っていれば使っているほど、含むパスは多くなるので、これらにより節約できるサイズは大きくなる。 Go の単一バイナリを Docker コンテナにするような状況では、 10% の節約は心理的に大きい。 (嬉しい) 使い所