Python psutil собирает использование ресурсов процесса в Mac OS X

По-видимому, я не могу получить использование ресурсов процесса в Mac OS X с помощью psutil после того, как процесс был собран, то есть после p.wait(), где p является экземпляром psutil.Popen(). Так, например, если я попробую ps.cpu_times().system, где ps является экземпляром psutil.Process(), я не получу рейз для такого процесса. Каковы другие варианты измерения использования ресурсов на Mac (прошедшее время, использование памяти и процессора)?


person C. Porto    schedule 21.10.2014    source источник
comment
опишите, как каждый вариант из @abarnert answer потерпел неудачу в вашем случае, например, r = resource.getrusage(resource.RUSAGE_CHILDREN)   -  person jfs    schedule 21.10.2014
comment
По-видимому, это подходит для моей проблемы, так как мне нужно вызвать только один подпроцесс, но я не совсем уверен, как его использовать и когда я должен вызывать, это после того, как подпроцесс умирает?   -  person C. Porto    schedule 21.10.2014
comment
См. Доступ к стандартному выводу при использовании «времени» в подпроцессах Python для примера использования.   -  person jfs    schedule 21.10.2014


Ответы (1)


Если процесс «умирает» или получает урожай, как вы должны с ним взаимодействовать? Конечно, вы не можете, потому что его больше нет. Если, с другой стороны, процесс является зомби, то в этом случае вы можете извлечь из него некоторую информацию, например, родительский PID, но не статистику ЦП или памяти.

person Giampaolo Rodolà    schedule 29.10.2014
comment
как показано в комментариях выше, вы можете получить информацию, даже если процесс собран, если вы являетесь его родителем: resource.getrusage(resource.RUSAGE_CHILDREN) - person jfs; 29.10.2014