-
En primer lugar,
libuv
ha eliminado ellibeio
de eso. Pero realiza E/S de archivos asíncronos con un grupo de subprocesos comolibeio
tal como lo mencionaste. -
libuv
también eliminalibev
. Realiza la E/S de red asíncrona en función de las interfaces de E/S asíncronas en diferentes plataformas, comoepoll
,kqueue
yIOCP
, sin un grupo de subprocesos. Hay un bucle de eventos que se ejecuta en el hilo principal deuv
que sondea los eventos de E/S y los procesa. -
El grupo de subprocesos dentro de
libuv
es un grupo de subprocesos de tamaño fijo (4 en un sistema similar a uinx). Realiza un rol de cola de tareas y evita el agotamiento de los recursos del sistema al generar subprocesos indefinidamente cuando aumentan las solicitudes.
Hasta la versión 0.6 nodo utilizado libev
para ejecutar event-loop y libeio
para E/S asíncrona, (el backend de Unix se basa en gran medida en estas dos bibliotecas). Pero libuv
ha comenzado a reemplazar libev
y libeio
en la versión 0.8. Ejecuta, mantiene y gestiona todos los io y eventos del pool de eventos. libuv
es la elección en bibliotecas de E/S asíncronas multiplataforma.
- Sí, hasta el nodo 0.6, obsoleto en 0.8 y usa un grupo de subprocesos
-
Sí, pero
libev
no utiliza el grupo de subprocesos. Ver aquíAclaración:según el enlace en la pregunta que publiqué,
libeio
admite todas las funciones POSIX relacionadas con E/S (que incluye socket). Pero el autor del nodo decidió usarlo solo para E/S de archivos asíncronos y usalibev
para E/S de red. No sé de dónde lo escuchaste, pero puedes usar epoll en archivos regulares. -
libev
usa bucle de eventos, así que no hay problemas aquí. - Sí, IOCP maneja la E/S asíncrona en Windows, el kernel usa grupos de subprocesos.
- El nuevo kernel de Linux tiene epoll, kqueue en el nuevo kernel de BSD.
libev
ylibeio
eran para el entorno Linux y proporciona bucle de eventos/E/S asíncrona para todos los núcleos (admite select, poll, epoll, kqueue).
Actualizar preguntas:
- no sé mucho sobre
libuv
- tal vez suficiente (no sé)
-
Aquí están mis hallazgos en Windows 8, lo verifiqué a través de Process Explorer. Mostró 4 subprocesos, 1 DLL, 1 archivo y 1 sección (un total de 7 entradas) para un proceso de aplicación de nodo.
-
ps -eLf
muestra todos los subprocesos y procesos, tal vez lo esté filtrando en exceso, solo busque el pid del proceso del nodo comops -eLf | grep x
donde x es pid para el proceso del nodo.