Redis
 sql >> Database >  >> NoSQL >> Redis

Quali sono le differenze sottostanti tra select, epoll, kqueue ed evport?

In generale, tutti i sottosistemi di I/O asincroni hanno interni diversi, ma nel caso specifico attuale queste librerie di I/O asincrone concrete vengono utilizzate per supportare quante più piattaforme possibili. Cioè:

  • evport =Solaris 10
  • sondaggio =Linux
  • kcoda =OS X, FreeBSD
  • seleziona =solitamente installato su tutti piattaforme come fallback

Evport , Epoll e KQueue avere O(1) complessità dell'algoritmo di selezione del descrittore e tutti utilizzano strutture di memoria interna dello spazio del kernel. Inoltre possono servire molti (centinaia di migliaia) descrittori di file.

A parte gli altri, select può servire solo fino a 1024 descrittori ed esegue la scansione completa dei descrittori (quindi ogni volta itera tutti i descrittori per sceglierne uno con cui lavorare), quindi la complessità è O(n) .