sql >> Base de Datos >  >> NoSQL >> Redis

¿Cuáles son las diferencias subyacentes entre select, epoll, kqueue y evport?

En general, todos los subsistemas de E/S asíncronas tienen diferentes componentes internos, pero en el caso específico actual, estas bibliotecas de E/S asíncronas concretas se utilizan para admitir tantas plataformas como sea posible. Eso es:

  • evolución =Solaris 10
  • encuesta electrónica =Linux
  • kcola =OS X, FreeBSD
  • seleccionar =generalmente instalado en todos plataformas como fallback

Evport , Epoll y KQueue tiene O(1) complejidad del algoritmo de selección de descriptores, y todos utilizan estructuras de memoria de espacio interno del kernel. También pueden servir muchos (cientos de miles) descriptores de archivo.

Aparte de los demás, select solo puede servir hasta 1024 descriptores, y realiza una exploración completa de los descriptores (por lo que cada vez que itera todos los descriptores para elegir uno con el que trabajar), la complejidad es O(n) .