Как я должен учитывать subprocess.Popen() накладные расходы при синхронизации в 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() накладные расходы, когда время в питоне?

Или, что является безобидным способом выборки из subprocess.Popen()?

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

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

1 ответ

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

Другие вопросы по тегам