Estoy desarrollando una aplicación node-js que espera una entrada midi y envía una salida midi.
Para medir y mejorar el rendimiento de la aplicación, siguiendo esta guía , extraje el perfil de uso de la CPU mientras usaba la aplicación.
Este es un extracto de los datos obtenidos:
[Summary]: ticks total nonlib name 495 1.7% 2.0% JavaScript 24379 85.3% 96.9% C++ 50 0.2% 0.2% GC 3430 12.0% Shared libraries 272 1.0% UnaccountedAhora la parte que me parece sospechosa es la siguiente:
ticks parent name 24080 84.3% epoll_pwaitAparentemente, un gran porcentaje de los ticks pertenecen a la misma función.
Según esta documentación :
Los eventos se reciben de la cola de eventos (p. ej., kernel) a través del proveedor de eventos (p. ej., epoll_wait)
Entonces, desde mi punto de vista, el subproceso de bucle de eventos usa esa función para sondear eventos mientras está inactivo. Eso significaría que el alto porcentaje de llamadas a epoll_pwait significa que el subproceso del bucle de eventos rara vez se bloquea, y eso sería bueno para el rendimiento.
Usando el comando superior puedo ver que el uso de CPU de la aplicación es bajo (aproximadamente 3%)
La pregunta es, ¿las llamadas a epoll_pwait afectan el rendimiento? Si es así, ¿puedo mejorar esto de alguna manera?