- 702 名前:デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX) mailto:sage [2016/05/12(木) 11:28:30.44 ID:DRM/51U40.net]
- >>684
そうなー。 後置を前置で単純に置き換えれるって事は副作用しか使ってないわけで 副作用しか要求しておらず、コンパイラが最適化をサボる場合には、 余計なインスタンスの生成が走りうる後置よりin-placeな前置の方が速い。 但し、intなんかのbuilt-inな型はコンパイラが最適化してくれる &そうでない型も処理が見えてればコンパイラが頑張って最適化してくれるので 副作用しか使わなければどっちでも同じ機械語列になるって事は書いてあるね。 でも>>671の先から引用を引用すると 「しかし、値が使われる場合、CPUのパイプラインでストールを生じさせないので、 ポストインクリメントの方が優秀である。 したがって、プレインクリメントの動作が絶対に必要である場合を除いて、 必ずポストインクリメントを使う習慣を身につけたほうがよい。」 とあって、パイプラインストールが起こりうるなら後置のほうが良い事もあるってのが元々の論旨だから もっと露骨にパイプラインストールが起こるようにコンパイラの最適化を邪魔したら -O3しても後置のほうが速くなったわ https://gist.github.com/pixie-grasper/6d9c560601f191df0dd205911866cc1e
|

|