convert from svn repository: remove tags directory
[lttv.git] / trunk / masters-pmf / java_speed_test / bench / bench.py
CommitLineData
0436dfbb 1import os
2import stat
3import time
4
f65716cf 5runs=10
6
7class Task:
8 name = "unnamed"
9 pre_cmd = ""
10 cmd = ""
11 post_cmd = ""
12 results = 0
0436dfbb 13 remain = 3
f65716cf 14
15 def __init__(self):
16 self.results = []
17
0436dfbb 18 def print_extra_details(self):
19 pass
20
21
22class JavaTestTask(Task):
23 tracefile = ""
24
25 def print_extra_details(self):
26 size = os.stat(self.tracefile)[stat.ST_SIZE]
27 tot_events = size / 22
28 print "Tracefile: %s (%d bytes)" % (self.tracefile,size)
29 print "Events in tracefile: %d" % tot_events
30 print "Rate: " + str(round(float(tot_events) / self.average_run_time, 3)) + " events/s"
31
32
f65716cf 33tasks = []
34
0436dfbb 35t1 = JavaTestTask()
f65716cf 36t1.name = "C version (without print)"
0436dfbb 37t1.tracefile = "../trace_long.dat"
f65716cf 38t1.pre_cmd = ""
0436dfbb 39t1.cmd = "pushd ../c >/dev/null; ./main %s; popd >/dev/null;" % t1.tracefile
f65716cf 40t1.post_cmd = ""
41tasks.append(t1)
42
0436dfbb 43t3 = JavaTestTask()
f65716cf 44t3.name = "C version (with print)"
0436dfbb 45t3.tracefile = "../trace_med.dat"
f65716cf 46t3.pre_cmd = ""
0436dfbb 47t3.cmd = "pushd ../c >/dev/null; ./main -p %s; popd >/dev/null;" % t3.tracefile
f65716cf 48t3.post_cmd = ""
0436dfbb 49tasks.append(t3)
f65716cf 50
0436dfbb 51t5 = JavaTestTask()
f65716cf 52t5.name = "C version (with print, but sent to /dev/null)"
0436dfbb 53t5.tracefile = "../trace_long.dat"
f65716cf 54t5.pre_cmd = ""
0436dfbb 55t5.cmd = "pushd ../c >/dev/null; ./main -p %s >/dev/null; popd >/dev/null;" % t5.tracefile
f65716cf 56t5.post_cmd = ""
0436dfbb 57tasks.append(t5)
f65716cf 58
0436dfbb 59t2 = JavaTestTask()
f65716cf 60t2.name = "Java version (without print)"
d36dea91 61t2.tracefile = "../trace_long.dat"
f65716cf 62t2.pre_cmd = ""
0436dfbb 63t2.cmd = "pushd ../java >/dev/null; java read_trace %s; popd >/dev/null;" % t2.tracefile
f65716cf 64t2.post_cmd = ""
65tasks.append(t2)
66
0436dfbb 67t4 = JavaTestTask()
f65716cf 68t4.name = "Java version (with print)"
0436dfbb 69t4.tracefile = "../trace_short.dat"
f65716cf 70t4.pre_cmd = ""
0436dfbb 71t4.cmd = "pushd ../java >/dev/null; java read_trace -p %s; popd >/dev/null;" % t4.tracefile
f65716cf 72t4.post_cmd = ""
0436dfbb 73tasks.append(t4)
f65716cf 74
0436dfbb 75t6 = JavaTestTask()
f65716cf 76t6.name = "Java version (with print, but sent to /dev/null)"
0436dfbb 77t6.tracefile = "../trace_med.dat"
f65716cf 78t6.pre_cmd = ""
0436dfbb 79t6.cmd = "pushd ../java >/dev/null; java read_trace -p %s >/dev/null; popd >/dev/null;" % t6.tracefile
f65716cf 80t6.post_cmd = ""
0436dfbb 81tasks.append(t6)
f65716cf 82
83def average(lst):
84 sum = 0
85 count = 0
86
87 for i in lst:
88 sum += i
89 count += 1
90
91 if count == 0:
92 return 0
93 else:
94 return sum/count
95
96def min(lst):
97 if len(lst) == 0:
98 return 0
99
100 found = lst[0]
101
102 for i in lst:
103 if i < found:
104 found = i
105
106 return found
107
108def max(lst):
109 if len(lst) == 0:
110 return 0
111
112 found = lst[0]
113
114 for i in lst:
115 if i > found:
116 found = i
117
118 return found
119
120def main():
121 for task in tasks:
122 while task.remain > 0:
123 os.system(task.pre_cmd)
124 t_start = time.time()
125 os.system(task.cmd)
126 t_end = time.time()
127 os.system(task.post_cmd)
128 task.remain-=1
129 task.results.append(t_end-t_start)
130 print(task.results)
131
132 print "------------------------------------"
133 for task in tasks:
134 print "RESULTS for " + task.name
135 print "Runs: " + str(len(task.results))
0436dfbb 136 task.average_run_time = average(task.results)
137 print "Average run time: " + str(round(task.average_run_time, 3)) + " s"
138 task.print_extra_details()
94c1d0b8 139 #print "Min: " + str(round(min(task.results), 3))
140 #print "Max: " + str(round(max(task.results), 3))
f65716cf 141 print ""
142
143main()
This page took 0.030369 seconds and 4 git commands to generate.