Mercurial > hg > Game > Cerium
annotate example/regex_mas/time.pl @ 1685:3b8c12927f45 draft
insert Math::Round in regex_mas/time.pl
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 10 Aug 2013 13:52:13 +0900 |
parents | 0b38dd5439d5 |
children | 13ffed43fe68 |
rev | line source |
---|---|
1681 | 1 #!/usr/bin/perl |
1683
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
2 |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
3 # update 7th August 2013 |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
4 # ./regex をcpu数と実行回数を設定して |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
5 # 実行時間のMAXとminとaverageを |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
6 # msで出力するスクリプト |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
7 |
1681 | 8 use strict; |
9 use warnings; | |
1685
3b8c12927f45
insert Math::Round in regex_mas/time.pl
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1683
diff
changeset
|
10 use Math::Round; #有効数字以下四捨五入 |
1681 | 11 |
1683
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
12 my $loop_counter = 0; |
1681 | 13 my $exec_result = 0; |
14 my $time_result = 0; | |
15 my $total_time = 0; | |
16 my $min_time = 0; | |
17 my $max_time = 0; | |
18 my $ave_time = 0; #average_time | |
19 | |
1683
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
20 if (@ARGV != 2) { |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
21 print("Usage: ./time.pl [cpu_num] [regex_exec_num]\n"); |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
22 exit(0); |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
23 } |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
24 |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
25 my $cpu_num = $ARGV[0]; |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
26 my $loop_num = $ARGV[1]; |
1681 | 27 print "------setting------\n"; |
1683
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
28 print " cpu_num = $cpu_num\n"; |
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
29 print "regex_exec_num = $loop_num\n"; |
1681 | 30 print "------result(ms)---\n"; |
31 | |
1683
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
32 while ($loop_counter < $loop_num){ |
1681 | 33 |
1683
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
34 $exec_result = `./regex -file c.txt -cpu $cpu_num`; #実行時のコマンドをここで入力 |
1681 | 35 |
36 if($exec_result =~ /(\d+\.\d+)/ ){ | |
37 $time_result = $1 * 1000; #元の単位がsなので、ここでmsに変換 | |
38 | |
39 if($min_time == 0) {$min_time = $time_result}; | |
40 if($time_result < $min_time) {$min_time = $time_result}; | |
41 if($time_result > $max_time) {$max_time = $time_result}; | |
42 | |
43 $total_time += $time_result; | |
44 } | |
45 | |
46 #print "time:$time_result\n"; | |
1683
0b38dd5439d5
insert error message regex_mas/time.pl .
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1681
diff
changeset
|
47 ++$loop_counter; |
1681 | 48 } |
49 | |
1685
3b8c12927f45
insert Math::Round in regex_mas/time.pl
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1683
diff
changeset
|
50 $ave_time = nearest(.001,$total_time / $loop_num); #小数点第4位未満四捨五入 (Math::Round) |
1681 | 51 |
52 print "max:$max_time\n"; | |
53 print "min:$min_time\n"; | |
1685
3b8c12927f45
insert Math::Round in regex_mas/time.pl
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1683
diff
changeset
|
54 print "ave:$ave_time\n"; |