ほぼ同じループを 2 つ取得しましたが、パフォーマンスに顕著な違いがありました。どちらも MSVC2010 でテストされ、システム ~2.4 GHZ および 8GB RAM で実行されました。
以下のループの実行には約 2500 ミリ秒かかります
for (double count = 0; count < ((2.9*4/555+3/9)*109070123123.8); count++)
;
そして、このループは1ミリ秒未満で実行されます
for (double count = ((2.9*4/555+3/9)*109070123123.8); count >0; --count)
;
ここで何がそんなに大きな違いを生んでいるのですか?1 つはポスト インクリメントを取得し、もう 1 つはプリ インクリメントを使用すると、このような大きな違いが生じる可能性がありますか?