速度に大きな違いはありません。
最低レベルでは、両方の値をCPUのレジスタにロードする必要があります。その後、差は第二は常に4回の操作でおおよそ
Load coeff into register1
Load value into register2
register2 = register1 * register2
Return value in register2
VS ...
Load coeff into register1
Load value into register2
If register1 is not 0, skip the next operation
Load 0 into register2
Return value in register2
あります。 coefがゼロでない場合、最初は5回の演算です。
しかし、最初のバージョンでは操作が非常に簡単です。 2番目の乗算はより集中的になります。私が知る限り、0または1の整数倍は、あなたが得るのと同じくらい速いです。 VALUEがFloatの場合、より集中的になります。
(これは、すべての基本的な実用的な知識ではなく、任意の専門知識からである。)
すべて言ったが、しかし、差ははるかに少ないディスクからデータをロードするよりもされること、またはtcp/ipでの送信
プロファイラを実行し、それぞれが使用するCPUサイクルを測定する必要があります。時間はかかりません。 1つのバージョンが他のバージョンよりもわずかに少ないCPUしか使用しないことがあります。それでも、取った時間の差はほとんど見られません。
あなたがここで測定するものを気にしないでください。遅い場合は、アプリケーションのネットワークプロトコルを上に置いた場合のCPU負荷がそれほど高くならない場合があります。 – TomTom
@hvd:申し訳ありませんが、質問に間違いがありました。一定。 –
@CodeByMoonlight - 質問タイトルに応じて係数が「0または1」です – MatBailie