パフォーマンスに対する非正規化浮動小数点の影響
提供されたコードで観察されるパフォーマンスの差異は、非正規化浮動小数点値の存在によって生じます。 。非正規化値はゼロに非常に近い数値を表し、通常は圧縮形式で保存されます。この圧縮によりメモリ効率は向上しますが、非正規化された数値を含む操作は大幅に遅くなります。
コード分析
最初のコード スニペットでは、0.1f の使用により非正規化された値が導入されています。計算に入れます。これは、0.1f が内部的には 0x3f800000 の正規化された値として表されるためですが、演算が進行するにつれて、連続した加算と減算により最終的に非正規化されてしまうためです。
パフォーマンスへの影響
非正規化浮動小数点演算は、正規化演算よりも大幅に遅くなる可能性があります。これは、多くのプロセッサには非正規化値を処理するための専用回路がなく、ソフトウェア エミュレーションに頼る必要があり、これによりかなりのオーバーヘッドが発生するためです。
コード バージョンの比較
2 番目コード スニペットでは、0.1f の代わりに 0 を使用することで、非正規化された値の作成を回避します。その結果、コードの実行が大幅に高速になります。
結論
パフォーマンス重視のアプリケーションでは、通常、非正規化浮動小数点値の使用を避ける必要があります。非正規化の導入は、特に浮動小数点変数に対して複数の演算を実行するループで、パフォーマンスに大きな影響を与える可能性があります。
以上が非正規化浮動小数点数が非常に遅いのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。