Maison  >  Article  >  développement back-end  >  Tri parallèle des tableaux PHP : tirer parti des processeurs multicœurs pour améliorer les performances

Tri parallèle des tableaux PHP : tirer parti des processeurs multicœurs pour améliorer les performances

PHPz
PHPzoriginal
2024-04-27 10:03:02435parcourir

Pour les grands tableaux, le tri parallèle PHP est nettement plus rapide que le tri en série en exploitant les processeurs multicœurs. Cet algorithme divise le tableau en segments, les trie simultanément sur plusieurs cœurs et les fusionne dans un tableau ordonné. Le tri parallèle peut être réalisé à l'aide de la fonction parallel_sort() de la bibliothèque parallelRuntime.

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

Tri parallèle des tableaux PHP : utilisation d'un processeur multicœur pour améliorer les performances

Introduction

Lors du traitement de grands tableaux, les opérations de tri peuvent devenir un goulot d'étranglement des performances. Les fonctions intégrées sort() et usort() utilisent un algorithme série, ce qui signifie que le processus de tri ne s'exécute que sur un seul cœur de processeur. 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()

🎜Tri parallèle🎜🎜🎜Pour résoudre ce problème, nous pouvons profiter des capacités de traitement parallèle de PHP. Les algorithmes de tri parallèle divisent le tableau en plusieurs segments plus petits et trient les segments simultanément sur plusieurs cœurs de processeur. Lorsque les segments sont triés, ils sont fusionnés dans un tableau ordonné. 🎜🎜🎜Cas pratique🎜🎜🎜Voici comment trier un grand tableau à l'aide de la fonction de tri parallèle PHP parallel_sort() : 🎜
composer require parallel/runtime
🎜🎜Comparaison🎜🎜🎜Comparons le tri parallèle avec le tri en série, en utilisant le même array : 🎜rrreee🎜 Dans la plupart des cas, le tri parallèle est nettement plus rapide que le tri en série sur les processeurs multicœurs. 🎜🎜🎜Note🎜🎜🎜Pour utiliser la fonction parallel_sort(), vous devez installer la bibliothèque parallèle. Vous pouvez l'installer en utilisant Composer : 🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn