tempo de execução de uma instância subprocess.Popen
-
05-07-2019 - |
Pergunta
Existe uma maneira fácil de descobrir a atual (real ou CPU) tempo de execução de uma instância subprocess.Popen?
Solução
Não, mas você pode simplesmente subclasse e estender a classe Popen para armazenar o momento em que foi criado.
Outras dicas
Não de uma forma independente de plataforma. No Linux, você pode ler /proc/<pid>/stat
, em particular as colunas utime, stime e starttime (como descrito em proc (5) ).
Em uma máquina Windows, você pode usar win32 APIs juntamente com proc.pid, assim:
import subprocess
def print_times(proc):
import win32process, win32api, win32con
hproc = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION, False, proc.pid)
times = win32process.GetProcessTimes(hproc)
win32api.CloseHandle(hproc)
# GetProcessTimes returns values in 100-ns intervals
print 'kernel', times['KernelTime'] * 1e-7
print 'user', times['UserTime'] * 1e-7
proc = subprocess.Popen('cmd /c sleep 1')
proc.wait()
print_times(proc)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow