平均してどちらが速いですか?値を確認してから、必要に応じて代入するか、単に代入しますか? または、C++ 用語で:
bool b;
if(b)
b = false;
また
b = false;
if() 条件が 50% の確率で真であると仮定します。答えは、ほとんどの場合、アーキテクチャに大きく依存します。低レベルの考慮事項を表明してください。書き込みは常にキャッシュラインを汚します - そうですか?したがって、書き込みを回避することで、0.5 ケースのキャッシュ フラッシュを回避できます。しかし、十分にスマートなキャッシュは、些細な書き込みを検出し、それ自体を汚さない可能性があります。ただし、無条件の書き込みは常に正確に 1 回のメモリ操作であり、読み書きは平均して 1.5 回の操作です。
免責事項: これは好奇心の問題であり、私が実際に直面している問題ではありません。