Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Quais são as diferenças subjacentes entre select, epoll, kqueue e evport?


Em geral, todos os subsistemas de E/S assíncronos têm componentes internos diferentes, mas no caso específico atual, essas bibliotecas de E/S assíncronas concretas são usadas para suportar o máximo de plataformas possível. Isso é:
  • transporte =Solaris 10
  • epoll =Linux
  • kqueue =OS X, FreeBSD
  • selecionar =geralmente instalado em todos plataformas como um fallback

Evport , Epoll e KQueue tem O(1) complexidade do algoritmo de seleção do descritor, e todos eles usam estruturas internas de memória do espaço do kernel. Também podem servir lotes (centenas de milhares) descritores de arquivo.

Além dos outros, select só pode veicular até 1.024 descritores e faz uma varredura completa dos descritores (portanto, toda vez que itera todos os descritores para escolher um para trabalhar), a complexidade é O(n) .