2009-08-21 13 views
17

Visual Studio 2005/2008の[プロジェクトプロパティ]の[ビルド]タブには、[コードの最適化]が含まれています。Visual Studioの[コードの最適化]チェックボックス。それは正確に何をしますか?

このドキュメントには、「出力ファイルのサイズを小さく、高速に、より効率的にするためにコンパイラが実行する最適化を有効または無効にする」と記載されています。

  1. なぜ私はそれを持っていないのですか?
  2. デフォルトでオンになっていないのはなぜですか?
  3. 実際にはどうなりますか?それはいくつかの行が最適化されますので、難しく実行されている実際のコードのようにコードをステップ実行すると、正常に(あなたが書いたものを反映していない可能性が作るとしてあなたは、構築されたデバッグのためにこれを上たくない

答えて

24
  1. DEBUGは、上記の理由でビルドのために)

  2. それはデフォルトでオンになっていない、それは放出に対するデフォルトで有効にされるべきでは

  3. は、そのような動的インラインや不要なローカル変数を除去するよう最適化を行い構築します。コンパイル時に決めることができるあらゆる種類の最適化。

3

ウィキペディアには、基本タイプの最適化の多くをカバーするcompiler optimizationに関する記事があります。

あなたが最適化されたデバッグビルドを作成する必要はありません。最適化はコードのデバッガビリティに影響します。コードの一部を削除したり、関数の異なる部分からのコード行や、異なる関数からのコード行をマージしたり、ローカル変数を一緒に折り畳むなどしたりすることができます。これは、コードが再編成されているため、現在の行のデバッグがランダムに行われているように見えることがあり、ローカル変数の検査が誤解を招く可能性があることを意味します。

関連する問題