2011-01-29 9 views
3

私はiPhoneのためのゲームをCでコーディングしていますが、いくつかのパフォーマンス上の問題が発生した後、ボトルネックがどこにあるかを調べるために楽器を使うことにしました。例えばgcc:なぜリテラルのキャストが最適化されていないのですか?

if(x == (float)3) {....} 

実行速く、私はこのようにそれを書いた場合:

if(x == 3.0f) {....} 

それは、コンパイラによって最適化されていないのはなぜ?
私はリリースモードでgccを使用しています。

+3

生成されたオブジェクトコードを見ましたか? –

+0

「リリースモード」とは何ですか?私はGCCが '-release-mode'フラグを持っているとは思わない。 –

+0

@Chris Lutz:おそらくXcodeが(デバッグ設定とは対照的に)リリース設定を呼び出すだけです。 – BoltClock

答えて

1

Soooorry、コメントによると、私はオブジェクトコードを見て同じです。
Xcodeの計測器は、1行ごとに時間を費やしていますが、100%信頼できるとは言えません。

関連する問題