いくつかの操作を行う必要がある文字の 2 次元配列があります。場合によっては、キャラクターがああかどうかを確認する必要があります。以前は、その文字が他の文字と等しくないかどうかを確認することでこれを達成していました (他の文字は 5 つしかありません)。ただし、最近、文字が < 'j' であるかどうかを代わりにチェックして、できれば少ないアセンブリ命令で同じ結果を得ることができるという考えを最近思いつきました。
いくつかの場所では、わずかなスピードアップをもたらしましたが、他の場所ではかなり大幅な減速をもたらしました. これはなぜですか?if ステートメントの < とは対照的に、!= の相対的な費用はいくらですか?
コード スニペットの例を次に示します。
if( arr[r][c] == arr[r][c+1] && arr[r][c] == arr[r][c+2]
&& arr[r][c] != 'q' && arr[r][c] != 'r' && arr[r][c] != 's' && arr[r][c] != 't')
対
if( arr[r][c] == arr[r][c+1] && arr[r][c] == arr[r][c+2]
&& arr[r][c] < 'j')