プロファイラなどのツールおよびベンチマーク #3

3名無しさん@Next2ch:2015/04/21(火) 06:41:10.42 ID:olTdYE8I

ゲームエンジンアーキテクチャ第二版
「しかし、値が使われる場合、CPUのパイプラインでストールを生じさせないので、
ポストインクリメントの方が優秀である。したがって、
プレインクリメントの動作が絶対に必要である場合を除いて、
必ずポストインクリメントを使う習慣を身につけたほうがよい」

考察
「ストールは本来、このインクリメントに限らず、データ依存性を持つあらゆるシチュエーション
で発生する恐れがあります。条件分岐、値の更新など、結果を待たなければ先の処理が行えないケース
が発生するたびストールは起こりえます。分岐予測など、ストールが実質的に無くなるような工夫
ももちろん行われているのですが、予測が外れた場合には、事前準備の甲斐なく、やっぱりストールします(中略)
後置インクリメントはインクリメントの結果を待たなくても、戻り値のオブジェクトは決定しているので
そのオブジェクトに対する処理はインクリメントの動作と並行して行えるよね。ならストールしない(中略)
int、もしくはSTLのイテレータに対してではないでしょうか。
その場合、やはり先程の検証でもあったように、コンパイラの素晴らしい最適化により、
前置と後置のコストの違いは限りなく少なくなります」


前置インクリメント vs 後置インクリメント | 闇夜のC++
http://cpp.aquariuscode.com/preincriment-vs-postincriment
2015年4月13日


スパムを通報

このレスがスパム・荒らしである場合は以下のボタンをクリックして通報してください。
(同意できない意見などに反対票を投じる機能ではありません)
通報

このスレッドを全て表示


レスを書き込む