Как я должен учитывать накладные расходы subprocess.Popen() при выборе времени в python?

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

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

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

Или следующее в окнах.

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

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

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

Или, может, там что-то еще не рассмотрело?

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

Ответы