ホームページ  >  記事  >  バックエンド開発  >  PHP 配列の並列ソート: マルチコア CPU を利用してパフォーマンスを向上させる

PHP 配列の並列ソート: マルチコア CPU を利用してパフォーマンスを向上させる

PHPz
PHPzオリジナル
2024-04-27 10:03:02435ブラウズ

大規模な配列の場合、マルチコア CPU を活用することで、PHP 並列ソートはシリアル ソートよりも大幅に高速になります。このアルゴリズムは、配列をセグメントに分割し、それらを複数のコアで同時に並べ替えて、順序付けられた配列にマージします。並列ソートは、Parallel\Runtime ライブラリのParallel_sort() 関数を使用して実現できます。

PHP 数组并行排序:利用多核 CPU 提升性能

#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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。