ホームページ >バックエンド開発 >Golang >Go Build: デバッグ バイナリとリリース バイナリ: より小規模で最適化されたバイナリを作成するにはどうすればよいですか?

Go Build: デバッグ バイナリとリリース バイナリ: より小規模で最適化されたバイナリを作成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 14:52:11611ブラウズ

Go Build: Debug vs. Release Binaries: How Do I Create a Smaller, Optimized Binary?

Go でのバイナリ ファイルのビルド: リリース バージョンとデバッグ バージョン

C のようなプログラミング言語では、開発者はデバッグ バージョンとリリース バージョンを区別することがよくあります。バイナリファイルの。これにより、トラブルシューティングと分析に役立つデバッグ情報を選択的に含めることができます。

Go のアプローチ: デフォルトで結合

ただし、Go では、この区別は明示的に行われません。 。デフォルトでは、 go build コマンドにはバイナリ ファイルにシンボルとデバッグ情報の両方が含まれます。これは、次のことを意味します。

  • バイナリには、デバッグに役立つデータが含まれています。
  • バイナリのサイズは、必要最低限​​のバージョンに比べて大きくなります。

**「-ldflags」を使用してストリップされたバイナリを構築する`

デバッグ情報のないバイナリが必要な場合、Go は -ldflags オプションを提供します。このオプションを使用すると、ビルド プロセス中に使用されるリンカーにフラグを指定できます。

ストリップされたバイナリをビルドするには、次のコマンドを使用します。

go build -ldflags "-s -w"

ここで使用されるフラグ次の効果があります:

  • -s: シンボルからシンボルを削除します。 binary.
  • -w: デバッグ情報が含まれないようにします。

バイナリをストリップする利点

ストリップされたバイナリを構築すると、次のような利点があります。

  • 削減バイナリ サイズ: ストリップされたバイナリは、デバッグ情報を含むバイナリよりも小さいため、ストレージと配布の要件が軽減されます。
  • セキュリティの向上: デバッグ情報が存在しないため、攻撃者がバイナリに存在する可能性のある脆弱性を悪用します。
  • 高速起動時間: ストリップされたバイナリは、余分なデバッグ データの負担がないため、より速くロードして実行できます。

注: ストリップされたバイナリは、実稼働環境で問題をデバッグするのはさらに困難です。したがって、開発とテストの目的にはデバッグ バイナリを構築し、デプロイメントと運用環境での使用にはストリップされたバイナリを構築することをお勧めします。

以上がGo Build: デバッグ バイナリとリリース バイナリ: より小規模で最適化されたバイナリを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。