Heim  >  Artikel  >  Backend-Entwicklung  >  Parallele Sortierung von PHP-Arrays: Nutzung von Multi-Core-CPUs zur Verbesserung der Leistung

Parallele Sortierung von PHP-Arrays: Nutzung von Multi-Core-CPUs zur Verbesserung der Leistung

PHPz
PHPzOriginal
2024-04-27 10:03:02495Durchsuche

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 数组并行排序:利用多核 CPU 提升性能

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()

🎜Parallele Sortierung🎜🎜🎜Um dieses Problem zu lösen, können wir die Parallelverarbeitungsfunktionen von PHP nutzen. Parallele Sortieralgorithmen teilen das Array in mehrere kleinere Segmente auf und sortieren die Segmente gleichzeitig auf mehreren CPU-Kernen. Wenn die Segmente sortiert sind, werden sie zu einem geordneten Array zusammengeführt. 🎜🎜🎜Praktischer Fall🎜🎜🎜So sortieren Sie ein großes Array mit der parallelen PHP-Sortierfunktion parallel_sort(): 🎜
composer require parallel/runtime
🎜🎜Vergleich🎜🎜🎜Vergleichen wir die parallele Sortierung mit der seriellen Sortierung unter Verwendung derselben Array: 🎜rrreee🎜 In den meisten Fällen ist die parallele Sortierung auf Multicore-CPUs deutlich schneller als die serielle Sortierung. 🎜🎜🎜Hinweis🎜🎜🎜Um die Funktion parallel_sort() verwenden zu können, müssen Sie die Parallelbibliothek installieren. Sie können es mit Composer installieren: 🎜rrreee

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn