Tengo un servicio Python de larga duración y me gustaría saber cuánto tiempo acumulado de reloj de pared ha pasado cualquier hilo ejecutable (es decir, hilos que no fueron bloqueados por algún otro motivo) esperando el GIL. ¿Hay una forma fácil de hacer esto? Por ejemplo, quizás podría periódicamente arrojar algún contador a su archivo de registro.¿Hay alguna manera fácil de saber cuánto tiempo se pasa esperando el Python GIL?
Mi motivación subyacente es descartar el GIL como una fuente de latencia de respuesta misteriosa de estos procesos de larga ejecución. No hay ninguna razón en particular para sospechar de GIL (aparte de que cabría los síntomas), pero otras formas de registro no han encontrado nada todavía, así que si es fácil, sería bueno tener esta información .
El proyecto gil_load le indica la frecuencia con la que se retiene el GIL (es decir, * al menos un * hilo es ejecutable). La pregunta pregunta con qué frecuencia se está esperando el GIL (es decir, * al menos dos * hilos son ejecutables). ¿Cómo lo logras con gil_load? –