コードの最適化

実行可能ファイルを最適化すると、実行速度の高速化とコード サイズの小型化のバランスを取ることができます。ここでは、Visual C++ に用意されている、コードの最適化に役立つ機構について説明します。

言語機能

次のトピックでは、C/C++ 言語の最適化機能について説明します。

xz7ttk5s.collapse_all(ja-jp,VS.110).gifoptimize プラグマ

最適化したコード セクションでエラーまたは処理速度の低下が発生する場合は、optimize プラグマを使用して該当するセクションの最適化を無効にできます。

次のように、コードを 2 つのプラグマで囲みます。

#pragma optimize("", off)
// some code here 
#pragma optimize("", on)

プログラミング手法

最適化したコードをコンパイルすると、新たに警告メッセージが表示されることがあります。多くの場合、このような警告は最適化されたコードだけに関連するものであり、これは予期された動作です。これらの警告をよく確認すると、最適化に関する多くの問題を回避できます。

また、高速化のためにプログラムを最適化した結果、逆に速度が遅くなることもあります。これは、最適化の方法によってはコード サイズが大きくなるためです。たとえば、関数をインライン展開すると関数呼び出しのオーバーヘッドはなくなります。しかし、インライン展開するコードが多すぎるとプログラムのサイズが大きくなり、仮想メモリのページ フォールトの回数が増えます。したがって、関数の呼び出しをなくすことにより処理を高速化したとしても、メモリのスワップによってその効果が相殺されます。

次のトピックでは、推奨されるプログラミング方法について説明します。

  • タイム クリティカルなコードを高速化するためのヒント
    適切なコーディング テクニックを使用することで、パフォーマンスを向上できます。ここでは、コードのタイム クリティカルな部分のパフォーマンスを向上させるために役立つコーディング テクニックについて説明します。

  • 最適化の推奨事項
    アプリケーションの適切な最適化方法に関する一般的なガイドラインを示します。

最適化されたコードのデバッグ

最適化を行うと、コンパイラによって生成されたコードが変更される可能性があります。そのため、アプリケーションをデバッグし、パフォーマンスを測定してから、コードを最適化することをお勧めします。

以下のトピックでは、デバッグ方法に関する基本情報について説明します。

以下のトピックでは、デバッグ方法に関するより詳細な情報を提供します。

次の各トピックでは、コードのビルド、読み込み、および実行を最適化する方法についての情報を示します。

参照

その他の技術情報

C/C++ ビルドのリファレンス