Получать время выполнения для двух программ одновременно

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

В принципе, мне было интересно, есть ли способ разблокировать скрипт оболочки и одновременно запускать две мои программы для проверки их времени выполнения и вычисления разницы

@ulrichschwarz прав. Тесты производительности не должны запускать оба процесса в parrallel.

—-

Вы можете использовать time которое является ключевым словом для оболочки.

В моем блоке debian есть также двоичный файл в PATH, который имеет больше возможностей. В этом случае \time необходимо использовать для запуска двоичной версии.

Нет явной вилки . Я имею в виду, что оболочка делает все для вас, когда программа запускается из командной строки или из сценария.

Оболочка запускает программу в фоновом режиме, когда & добавляется в конце командной строки: например, sleep 6 &

Если в фоновом режиме запущено 2 программы, они запускаются одновременно.

wait – встроенная оболочка. При использовании без параметра текущий процесс приостанавливается до завершения текущих активных дочерних процессов (в фоновом режиме).

Попробуйте:

 realtime1=$(mktemp) realtime2=$(mktemp) \time -o "${realtime1}" -f "%e" sleep 5 & \time -o "${realtime2}" -f "%e" sleep 10 & wait printf "Number of seconds used by program1: %s\n" $(cat "${realtime1}") printf "Number of seconds used by program2: %s\n" $(cat "${realtime2}") 

Тест:

 $ bash script.sh Number of seconds used by program1: 5.00 Number of seconds used by program2: 10.00