Время выполнения экземпляра подпроцесса. Открыть экземпляр - PullRequest
1 голос
/ 22 октября 2009

Есть ли простой способ узнать текущее (реальное или процессорное) время выполнения подпроцесса. Открыть экземпляр?

Ответы [ 3 ]

1 голос
/ 22 октября 2009

Нет, но вы можете просто создать подкласс и расширить класс Popen для хранения времени, когда он был создан.

0 голосов
/ 23 октября 2009

На компьютере с Windows вы можете использовать Win32 API вместе с proc.pid, например:

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)
0 голосов
/ 22 октября 2009

Не в зависимости от платформы. В Linux вы можете прочитать /proc/<pid>/stat, в частности столбцы utime, stime и starttime (как описано в proc (5) ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...