f65716cf |
1 | runs=10 |
2 | |
3 | class Task: |
4 | name = "unnamed" |
5 | pre_cmd = "" |
6 | cmd = "" |
7 | post_cmd = "" |
8 | results = 0 |
9 | remain = 10 |
10 | |
11 | def __init__(self): |
12 | self.results = [] |
13 | |
14 | tasks = [] |
15 | |
16 | t1 = Task() |
17 | t1.name = "C version (without print)" |
18 | t1.pre_cmd = "" |
19 | t1.cmd = "pushd ../c >/dev/null; ./main; popd >/dev/null;" |
20 | t1.post_cmd = "" |
21 | tasks.append(t1) |
22 | |
23 | t3 = Task() |
24 | t3.name = "C version (with print)" |
25 | t3.pre_cmd = "" |
26 | t3.cmd = "pushd ../c >/dev/null; ./main -p; popd >/dev/null;" |
27 | t3.post_cmd = "" |
28 | tasks.append(t3) |
29 | |
30 | t5 = Task() |
31 | t5.name = "C version (with print, but sent to /dev/null)" |
32 | t5.pre_cmd = "" |
33 | t5.cmd = "pushd ../c >/dev/null; ./main -p >/dev/null; popd >/dev/null;" |
34 | t5.post_cmd = "" |
35 | tasks.append(t5) |
36 | |
37 | t2 = Task() |
38 | t2.name = "Java version (without print)" |
39 | t2.pre_cmd = "" |
40 | t2.cmd = "pushd ../java >/dev/null; java read_trace; popd >/dev/null;" |
41 | t2.post_cmd = "" |
42 | tasks.append(t2) |
43 | |
44 | t4 = Task() |
45 | t4.name = "Java version (with print)" |
46 | t4.pre_cmd = "" |
47 | t4.cmd = "pushd ../java >/dev/null; java read_trace -p; popd >/dev/null;" |
48 | t4.post_cmd = "" |
49 | tasks.append(t4) |
50 | |
51 | t6 = Task() |
52 | t6.name = "Java version (with print, but sent to /dev/null)" |
53 | t6.pre_cmd = "" |
54 | t6.cmd = "pushd ../java >/dev/null; java read_trace -p >/dev/null; popd >/dev/null;" |
55 | t6.post_cmd = "" |
56 | tasks.append(t6) |
57 | |
58 | import os |
59 | import time |
60 | |
61 | def average(lst): |
62 | sum = 0 |
63 | count = 0 |
64 | |
65 | for i in lst: |
66 | sum += i |
67 | count += 1 |
68 | |
69 | if count == 0: |
70 | return 0 |
71 | else: |
72 | return sum/count |
73 | |
74 | def min(lst): |
75 | if len(lst) == 0: |
76 | return 0 |
77 | |
78 | found = lst[0] |
79 | |
80 | for i in lst: |
81 | if i < found: |
82 | found = i |
83 | |
84 | return found |
85 | |
86 | def max(lst): |
87 | if len(lst) == 0: |
88 | return 0 |
89 | |
90 | found = lst[0] |
91 | |
92 | for i in lst: |
93 | if i > found: |
94 | found = i |
95 | |
96 | return found |
97 | |
98 | def main(): |
99 | for task in tasks: |
100 | while task.remain > 0: |
101 | os.system(task.pre_cmd) |
102 | t_start = time.time() |
103 | os.system(task.cmd) |
104 | t_end = time.time() |
105 | os.system(task.post_cmd) |
106 | task.remain-=1 |
107 | task.results.append(t_end-t_start) |
108 | print(task.results) |
109 | |
110 | print "------------------------------------" |
111 | for task in tasks: |
112 | print "RESULTS for " + task.name |
113 | print "Runs: " + str(len(task.results)) |
114 | print "Average: " + str(round(average(task.results), 3)) |
115 | print "Min: " + str(round(min(task.results), 3)) |
116 | print "Max: " + str(round(max(task.results), 3)) |
117 | print "" |
118 | |
119 | main() |