は比較 '<' です'<=' より高速ですか?
複雑なループ コードを含む特定のシナリオでは、'<' を使用することが推奨されています。演算子は「<=」演算子よりも高速な場合があります。この主張を調査するために、これらの比較用に生成された基になるマシン コードを調べてみましょう。
コード生成
x86 アーキテクチャでは、通常、整数比較は 2 つのマシン命令を使用して実装されます。
両方の '<' について「<=」比較では、最初の命令 (cmp) は同一です。違いは 2 番目の命令にあります:
実行時間
実行時間はレイテンシーとスループットの両方によって決まります。 jge 命令と jg 命令の場合、レイテンシは同じ 0 サイクル、スループットは 0.5 サイクルです。これは、実行にかかる時間が同じであることを意味します。
浮動小数点比較
fucomip 命令を使用した x87 浮動小数点比較にも同じ原則が適用されます。 EFLAGS レジスタのチェックに使用される seta 命令と setae 命令も、実行に同じ時間がかかります。
結論
ほとんどのアーキテクチャでは、「<」および '<=' 演算子は、整数比較と浮動小数点比較の両方で同じ実行時間になります。 「<」という仮定「より高速になるかもしれない」は、一般的なケースでは誤りです。
以上がです。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。