ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列の並列ソート: マルチコア CPU を利用してパフォーマンスを向上させる
大規模な配列の場合、マルチコア CPU を活用することで、PHP 並列ソートはシリアル ソートよりも大幅に高速になります。このアルゴリズムは、配列をセグメントに分割し、それらを複数のコアで同時に並べ替えて、順序付けられた配列にマージします。並列ソートは、Parallel\Runtime ライブラリのParallel_sort() 関数を使用して実現できます。
#PHP 配列の並列ソート: マルチコア CPU を使用してパフォーマンスを向上させる
はじめに
大規模な配列を扱う場合、ソート操作がパフォーマンスのボトルネックになる可能性があります。 PHP の組み込み関数sort() および
usort() 関数はシリアル アルゴリズムを使用します。これは、並べ替えプロセスが 1 つの CPU コアでのみ実行されることを意味します。
並列ソート
この問題を解決するには、PHP の並列処理機能を利用できます。並列ソート アルゴリズムは、配列を複数の小さなセグメントに分割し、複数の CPU コアでセグメントを同時にソートします。セグメントがソートされると、それらは順序付けられた配列にマージされます。実際的なケース
PHP 並列ソート関数の使用方法は次のとおりです。Parallel_sort() 大きな配列をソートします:
use parallel\Runtime; $runtime = new Runtime; $array = range(0, 1000000); shuffle($array); $start = microtime(true); $runtime->parallel($array, function ($chunk) { sort($chunk); return $chunk; }); $end = microtime(true); echo "Elapsed time: " . ($end - $start) . " seconds\n";
比較
同じ配列を使用して、並列ソートとシリアル ソートを比較してみましょう:$start = microtime(true); sort($array); $end = microtime(true); echo "Elapsed time (serial): " . ($end - $start) . " seconds\n";ほとんどの場合、マルチコアでは並列ソートの方がシリアル ソートよりも優れています。 CPU 行のソートが大幅に高速化されました。
注
Parallel_sort()関数を使用するには、並列ライブラリをインストールする必要があります。 Composer を使用してインストールできます:
composer require parallel/runtime
以上がPHP 配列の並列ソート: マルチコア CPU を利用してパフォーマンスを向上させるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。