• ベストアンサー

inlineは最適化で付けて無くても同じようにしてくれる?

VC++6で メソッドにinlineを付けると、実行速度が速くなるのでしょうか? 最適化Option? or ReleaseでEXEを作ると、自動的にメソッドはinline付と同じようにしてくれるのでしょうか? VCのプロにお聞きしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

インライン置換によって、ほぼ間違いなく高速化されるのは、関数の呼出しに関する部分だけです。大きな関数をインライン置換すると、キャッシュのヒット率が悪くなりますし、ページフォルトも起こしやすくなるので、全体としてはかえって遅くなる可能性もあり得ます。 なお、inline指定子がない関数がインライン置換される可能性はありますが、それはあくまでも同じ翻訳単位の場合に限られます。 (完全に検証したわけではないですが)翻訳単位を超えてインライン置換が発生することはありません。

その他の回答 (1)

回答No.1

inline-keywordは "できることならインライン展開してください" くらいの意味です。 実際にインライン展開されるか否かはコンパイラの 判断にゆだねられます。 inlineを付けることによって速くなるかは、 実際にやってみればわかります。

関連するQ&A

専門家に質問してみよう