Bei großen Arrays ist die parallele PHP-Sortierung durch die Nutzung von Multi-Core-CPUs deutlich schneller als die serielle Sortierung. Dieser Algorithmus teilt das Array in Segmente auf, sortiert sie gleichzeitig auf mehrere Kerne und fügt sie zu einem geordneten Array zusammen. Eine parallele Sortierung kann mit der Funktion parallel_sort() in der parallelRuntime-Bibliothek erreicht werden.
PHP-Array-Parallelsortierung: Nutzung einer Multi-Core-CPU zur Verbesserung der Leistung
Einführung
Bei der Verarbeitung großer Arrays können Sortiervorgänge zu einem Leistungsengpass führen. Die in PHP integrierten Funktionen sort()
und usort()
verwenden einen seriellen Algorithmus, was bedeutet, dass der Sortiervorgang nur auf einem einzigen CPU-Kern ausgeführt wird. sort()
和 usort()
函数采用串行算法,这意味着排序过程仅在单个 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()
parallel_sort()
: 🎜composer require parallel/runtime
parallel_sort()
verwenden zu können, müssen Sie die Parallelbibliothek installieren. Sie können es mit Composer installieren: 🎜rrreeeDas obige ist der detaillierte Inhalt vonParallele Sortierung von PHP-Arrays: Nutzung von Multi-Core-CPUs zur Verbesserung der Leistung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!