Redis
 sql >> Base de données >  >> NoSQL >> Redis

Quelles sont les différences sous-jacentes entre select, epoll, kqueue et evport ?

En général, tous les sous-systèmes d'E/S asynchrones ont des composants internes différents, mais dans le cas spécifique actuel, ces bibliothèques d'E/S asynchrones concrètes sont utilisées pour prendre en charge autant de plates-formes que possible. C'est-à-dire :

  • evport =Solaris 10
  • epoll =Linux
  • kqueue =OS X, FreeBSD
  • sélectionner =généralement installé sur tous plates-formes en tant que fallback

Evport , Epoll , et KQueue avoir O(1) complexité de l'algorithme de sélection des descripteurs, et ils utilisent tous des structures de mémoire d'espace interne du noyau. Ils peuvent également servir des lots (centaines de milliers) descripteurs de fichiers.

En dehors des autres, select ne peut servir que jusqu'à 1024 descripteurs, et effectue une analyse complète des descripteurs (donc à chaque itération de tous les descripteurs pour en choisir un avec lequel travailler), la complexité est donc O(n) .