3

This questionMSDNは、/O2の方が高速であることを暗示しているようですが、Microsoft独自のSafeIntクラスを見ると、次のように書かれていることに気付くでしょう:

1) 最適化されたコードをコンパイルする -/Ox最高であり、/O2パフォーマンスも良好です。興味深いことに、/O1 (サイズの最適化) も同様に機能しません。

違いが/GF /Gy上記の質問とまったく同じである場合、それ/GFは無関係であり (文字列プーリング)、/Gy(フレーム ポインターを省略して)私が想像する限り、実際にあなたを傷つけることはありません。

足りないものはありますか?/Ox一般的に速いですか?なぜですか、そうでないのですか?

4

1 に答える 1

1

/Gyはフレーム ポインタの省略ではあり/Oyません。/Ox/O1/O2

/GyCOMDAT 生成 (関数レベルのリンク) であり、ワーキング セットのサイズを縮小する傾向がありますが、コードの品質には実際には影響しません。また、テンプレートと SafeInt のようなインライン コードでは、おそらく識別可能な違いはまったくありません。

あなたがリンクしたMSDNページにも/O2の代わりに使用するように書かれているので、「一般的に高速」という考えにはメリット/Oxがないと思います。/Ox

于 2012-08-11T05:50:57.047 に答える