Я ожидаю, что любая разница в скорости, скажем, os.system
и os.execv
и subprocess.Popen
, будет затоплена за счет запуска нового процесса (и переключения контекста, необходимого для его фактического запуска).Поэтому я рекомендую сначала использовать subprocess
и измерить производительность.
Одно из возможных соображений производительности: os.system
и subprocess.Popen(shell=True, ...)
вызывают создание дополнительного процесса оболочки.В большинстве случаев эта оболочка не нужна.Создавать его расточительно;Вы получаете вдвое больше процессов, чем нужно, без какой-либо выгоды.