| 1 | runs=10 |
| 2 | |
| 3 | class Task: |
| 4 | name = "unnamed" |
| 5 | pre_cmd = "" |
| 6 | cmd = "" |
| 7 | post_cmd = "" |
| 8 | results = 0 |
| 9 | remain = 1 |
| 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 | av = average(task.results) |
| 115 | print "Average run time: " + str(round(av, 3)) + " s" |
| 116 | print "Rate: " + str(round(1000000.0 / av, 3)) + " events/s" |
| 117 | #print "Min: " + str(round(min(task.results), 3)) |
| 118 | #print "Max: " + str(round(max(task.results), 3)) |
| 119 | print "" |
| 120 | |
| 121 | main() |