同时获取两个程序的运行时间

同时获取两个程序的运行时间

我正在尝试制作一个 shell 脚本,它可以同时在两个不同的程序上运行测试并比较它们的运行时间,以便查看哪个程序具有最佳效率(测试必须通过此脚本自动化)

基本上,我想知道是否有一种方法可以分叉 shell 脚本并同时启动我的两个程序来检查它们的运行时间并计算差异

答案1

@ulrichschwarz 是对的。性能测试不应并行运行两个进程。

----

您可以使用timeshell 关键字which。

在我的 debian 盒子上,路径中还有一个二进制文件,它有更多选项。在这种情况下,\time需要使用二进制版本来运行。

没有明确的。我的意思是,当程序从命令行或脚本启动时,shell 会为您做所有事情。

&当在命令行末尾添加时,shell 在后台启动程序:例如sleep 6 &

如果在后台启动 2 个程序,则它们会同时运行。

wait是一个 shell 内置的。当不带参数使用时,当前进程将挂起以等待当前活动子进程(在后台)终止。

尝试一下这个:

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

相关内容