Possiedo un servizio Python a esecuzione prolungata e vorrei sapere quanti minuti cumulativi sono stati spesi da qualsiasi thread eseguibile (ad esempio, thread non bloccati per altri motivi) in attesa di GIL. C'è un modo semplice per farlo? Ad esempio, forse potrei periodicamente scaricare un contatore nel suo file di registro.C'è un modo semplice per dire quanto tempo è trascorso in attesa di Python GIL?
La mia motivazione di base è escludere il GIL come una fonte di latenza di risposta di mistero da questi processi di lunga durata. Non v'è alcun motivo particolare per sospettare l'GIL (diverso da quello che si adatterebbe i sintomi), ma altre forme di registrazione non hanno trasformato ancora nulla, quindi, se è facile, sarebbe bello avere queste informazioni .
Il progetto gil_load indica la frequenza con cui viene tenuto GIL (ovvero, * almeno un * thread è eseguibile). La domanda chiede quanto spesso il GIL è in attesa (cioè, * almeno due thread * sono eseguibili). Come lo ottieni con gil_load? –