1
私は、モンテカルロ法を使用してPIに近似するプログラムの実行時間を計算したいと考えています。私は、K = 1,2、... 7の点N = 10^{k}というプログラムにフィードするUnixシェルスクリプトを書いています。 ここで、Unixのプログラム時間で各Nの実行時間を調べたいと思います。次のように私のUNIXシェルスクリプトに見える:私が入力したときにUnixのプログラム時間を使用して各繰り返しのプログラムのランタイムを計算する
#!/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
を、それは私の総実行時間を返し
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入力のための時間、または私は自分のコードで何かをしなければならない。
素晴らしい作品です!私が得る3つの時間出力のうち、どれがプログラム実行時間を表すか? – bhjghjh
"real"は実際の単語時間です。アプリがスリープしたり、別のアプリによってCPUが使用されているときは、このタイマーはまだ変化しません。 「ユーザー」は、ユーザーモードで費やされたCPU時間です。 "sys"は、カーネルモードで費やされたCPU時間です。 –
ok、実際のランタイムユニットは何ですか?どのように私はUNIXスクリプトから数秒でそれを得るのですか? – bhjghjh