文字列から IPv4 アドレスを抽出するための最適なソリューション
はじめに
提供されたコードは、IPv4 アドレスを文字列から取得します。文字列。特定の制約に合わせて最適化されていますが、より高速な方法や代替方法を検討する必要がある場合があります。
ベクトル化ソリューション
スループットを最大化するには、SSE4.1 命令を使用したベクトル化ソリューションをお勧めします。
こちらですコード:
説明
このソリューションは、バイトを 4 つの 4 バイト ブロックに効率的に再配置する、事前計算されたルックアップ テーブル shuffleTable に依存しています。各ブロックは IP アドレスの一部を表します。このソリューションはスループットに関して高度に最適化されており、1 秒あたり 3 億を超えるアドレスを処理するという驚異的な速度を実現します。
shuffleTable の初期化
shuffleTable ルックアップ テーブルは動的に生成されます。その目的は、再配置のための順列を提供することです。
テストと比較
テストにより、このベクトル化されたソリューションは元のコードよりも大幅に高速であることがわかります:
結論
このベクトル化されたソリューションは以下を提供します元のコードと比較して速度が大幅に向上しました。ベクトル化された命令と事前計算されたルックアップ テーブルを利用して IPv4 アドレス抽出を最適化し、1 秒あたり 3 億を超えるアドレスを処理するスループットを実現します。
以上がSSE4.1 命令は、より高速な IPv4 アドレス抽出のためのベクトル化されたソリューションを提供できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。