Как я должен учитывать subprocess.Popen () накладные расходы при синхронизации в Python? - PullRequest
4 голосов
/ 27 сентября 2011

более интеллектуальные-члены-оф-кодирования-сообщества, чем я!У меня есть вопрос по Python для всех вас ...:)

Я пытаюсь оптимизировать сценарий Python, который (среди прочего) возвращает настенные часы, когда подпроцесс выполнялся и завершался.Я думаю, что я близок с чем-то вроде этого.

startTime = time.time()
process = subprocess.Popen(['process', 'to', 'test'])
process.wait()
endTime = time.time()
wallTime = endTime - startTime

Однако я обеспокоен тем, что накладные расходы в subprocess.Popen() приводят к увеличению моих результатов на старых и экзотических платформах.Мое первое желание состоит в том, чтобы как-то рассчитать накладные расходы, вызванные subprocess.Popen(), с помощью простой безобидной команды.Например, следующее в linux.

startTime = time.time()
process = subprocess.Popen(['touch', '/tmp/foo'])
process.wait()
endTime = time.time()
overheadWallTime = endTime - startTime

Или следующее в windows.

startTime = time.time()
process = subprocess.Popen(['type', 'NUL', '>', 'tmp'])
process.wait()
endTime = time.time()
overheadWallTime = endTime - startTime

Итак, как я должен учитывать subprocess.Popen() издержки при синхронизации в python?

Или, каков безобидный способ сэмплировать накладные расходы из subprocess.Popen()?

Или, может быть, есть кое-что, что я еще не учел?

Предостережение заключается в том, что решение должнобыть достаточно кроссплатформенным.

1 Ответ

1 голос
/ 27 сентября 2011

Добро пожаловать в батареи включены .

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