Maison > cadre php > Swoole > Le swoole timer est-il un processus unique ?

Le swoole timer est-il un processus unique ?

(*-*)浩
Libérer: 2019-12-12 13:41:56
original
2067 Les gens l'ont consulté

Le swoole timer est-il un processus unique ?

Minuterie avec une précision de la milliseconde. La couche inférieure est implémentée sur la base de epoll_wait et setitimer. La structure de données utilise un tas minimum, qui peut prendre en charge l'ajout d'un grand nombre de timers.

Utiliser l'implémentation de setitimer et de signal dans le processus de synchronisation, comme les processus Manager et TaskWorker                                                                                                                                                                                                                Utiliser epoll_wait/kevent/poll/select timeout dans le processus asynchrone pour atteindre les

Performances

La couche inférieure utilise la structure de données de tas minimale pour implémenter la minuterie, L'ajout et la suppression de minuteries sont toutes des opérations de mémoire, donc les performances sont très élevées.

Dans le script de référence officiel https://github.com/swoole/swoole-src/blob/master/benchmark/timer.php, l'ajout ou la suppression d'un minuteur de 100 000 temps aléatoires prend : environ 0,08 s.

~/workspace/swoole/benchmark$ php timer.php
add 100000 timer :0.091133117675781s
del 100000 timer :0.084658145904541s
Copier après la connexion

Timer est une opération de mémoire sans consommation d'E/S

Différence

Timer est différent du propre pcntl_alarm de PHP. pcntl_alarm est basé sur l'implémentation de la fonction signal d'horloge + tick et présente quelques défauts :

Il ne prend en charge que jusqu'à quelques secondes, tandis que la minuterie peut atteindre le niveau de la milliseconde

Ne prend pas en charge la configuration de plusieurs programmes de minuterie en même temps time

pcntl_alarm s'appuie sur declare(ticks = 1), et les performances sont très mauvaises

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal