2010-01-12 39 views
7

Tengo una aplicación de Python de subprocesos múltiples y actualmente estoy solucionando problemas con el uso de CPU muy alto (90% o más).Perfil Python Uso de CPU por subproceso

Voy a probar el generador de perfiles, pero quería ver si hay una forma de que pueda obtener el uso de CPU por hilo desde dentro de la aplicación. Entiendo que os.times() tendrá un uso general de la CPU: ¿hay algo que pueda ejecutar desde cada subproceso para obtener el uso de cada subproceso? Sería muy útil determinar qué hilo está comiendo CPU.

+0

Lo operativos no se planean probar el/apoyo? –

+0

Principalmente Windows, pero también admitimos Linux. El alto uso de CPU está ocurriendo en Windows, pero no lo hemos probado en Linux en este momento. – Dave

Respuesta

1

Aparte del generador de perfiles, no creo que Python tenga mucho incorporado para monitorear el uso de la CPU de subprocesos individuales. Además, this post proporciona un ejemplo de una implementación simple de un perfilador de subprocesos. Parece principalmente orientado a sistemas basados ​​en Unix, pero es un comienzo.

0

Si está en Windows, puede echar un vistazo al Process Explorer ("procexp.exe" incluido con Microsoft's Sysinternals Tools). Hay una pestaña "Subprocesos" en las propiedades de cada proceso que enumera todos los subprocesos y su tiempo de CPU.

Si eso no le da suficiente información, use Python's profiling mechanisms, que no son demasiado difíciles de usar.