-
En primer lugar,
libuvha eliminado ellibeiode eso. Pero realiza E/S de archivos asíncronos con un grupo de subprocesos comolibeiotal como lo mencionaste. -
libuvtambié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,kqueueyIOCP, sin un grupo de subprocesos. Hay un bucle de eventos que se ejecuta en el hilo principal deuvque sondea los eventos de E/S y los procesa. -
El grupo de subprocesos dentro de
libuves 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
libevno utiliza el grupo de subprocesos. Ver aquíAclaración:según el enlace en la pregunta que publiqué,
libeioadmite 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 usalibevpara E/S de red. No sé de dónde lo escuchaste, pero puedes usar epoll en archivos regulares. -
libevusa 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.
libevylibeioeran 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 -eLfmuestra todos los subprocesos y procesos, tal vez lo esté filtrando en exceso, solo busque el pid del proceso del nodo comops -eLf | grep xdonde x es pid para el proceso del nodo.