使用 Unix 程序时间计算每次迭代的程序运行时间
calculating program's runtime for each iteration using Unix program time
我希望使用 Monte Carlo 方法计算我的程序的运行时间,它近似于 PI。我写了一个 unix shell 脚本,它为程序 No of points, N = 10^{k} 提供 K = 1,2, ...7。
现在我想在 Unix 程序时间内找到每个 N 的执行时间。我的 unix shell 脚本如下所示:
#!/bin/bash
k=1
N=10
while [[ k -le 7 ]]
do
echo "$k N" | ./pi $N
((k = k + 1))
((N = N * 10))
done
现在,当我键入:$ time ./pi.sh
时,它 returns 我的总执行时间
10 3.6 0.1459155902616465
100 3.08 0.01960555055392467
1000 3.104 0.01196611328551369
10000 3.1284 0.004199352062629202
100000 3.1432 0.0005116342528909465
1000000 3.139704 0.0006011771092076384
10000000 3.141432 5.113762588206346e-05
real 0m0.583s
user 0m0.560s
sys 0m0.012s
我想知道我是否必须编写一个 bash 脚本来获取每个 N 输入的执行时间,或者我必须在我的代码中做一些事情。
通过写入 $ time ./pi.sh
,您可以测量执行 pi.sh 所需的时间,其中有一个循环。因此,您测量所有迭代的总时间。如果要独立测量每个迭代,则必须将 time
放入迭代调用中:
echo "$k N" | time ./pi $N
我希望使用 Monte Carlo 方法计算我的程序的运行时间,它近似于 PI。我写了一个 unix shell 脚本,它为程序 No of points, N = 10^{k} 提供 K = 1,2, ...7。 现在我想在 Unix 程序时间内找到每个 N 的执行时间。我的 unix shell 脚本如下所示:
#!/bin/bash
k=1
N=10
while [[ k -le 7 ]]
do
echo "$k N" | ./pi $N
((k = k + 1))
((N = N * 10))
done
现在,当我键入:$ time ./pi.sh
时,它 returns 我的总执行时间
10 3.6 0.1459155902616465
100 3.08 0.01960555055392467
1000 3.104 0.01196611328551369
10000 3.1284 0.004199352062629202
100000 3.1432 0.0005116342528909465
1000000 3.139704 0.0006011771092076384
10000000 3.141432 5.113762588206346e-05
real 0m0.583s
user 0m0.560s
sys 0m0.012s
我想知道我是否必须编写一个 bash 脚本来获取每个 N 输入的执行时间,或者我必须在我的代码中做一些事情。
通过写入 $ time ./pi.sh
,您可以测量执行 pi.sh 所需的时间,其中有一个循环。因此,您测量所有迭代的总时间。如果要独立测量每个迭代,则必须将 time
放入迭代调用中:
echo "$k N" | time ./pi $N