2010-01-12 13 views
7

Ho un'applicazione Python multi-threaded e attualmente sto risolvendo l'utilizzo della CPU molto alto (90% o più).Utilizzo CPU Python profilo per thread

Ho intenzione di provare il profiler, ma volevo vedere se c'è un modo per ottenere l'utilizzo della CPU per thread dall'interno dell'applicazione. Capisco che os.times() otterrà l'utilizzo della CPU in generale - c'è qualcosa che posso eseguire da all'interno di ogni thread per ottenere l'utilizzo di ogni thread? Sarebbe molto utile determinare quale thread sta mangiando CPU.

+0

Cosa operativi pensate di test su/supporto? –

+0

Principalmente Windows, ma supportiamo anche Linux. L'elevato utilizzo della CPU si verifica su Windows, ma non lo abbiamo testato su Linux a questo punto. – Dave

risposta

1

A parte il profiler, non penso che Python abbia molto integrato per il monitoraggio dell'utilizzo della CPU con thread singoli. Inoltre, this post fornisce un esempio di una semplice implementazione di un profiler di thread. Appare principalmente orientato verso sistemi basati su Unix, ma è un inizio.

0

Se si utilizza Windows, è possibile dare un'occhiata a Process Explorer ("procexp.exe" fornito con Microsoft's Sysinternals Tools). C'è una scheda "Thread" nelle proprietà di ogni processo che elenca tutti i thread e il loro tempo di CPU.

Se ciò non fornisce abbastanza informazioni, utilizzare Python profiling mechanisms, che non sono troppo difficili da utilizzare.

Problemi correlati