convert from svn repository: remove tags directory
[lttv.git] / trunk / masters-pmf / java_speed_test / bench / bench.py
... / ...
CommitLineData
1import os
2import stat
3import time
4
5runs=10
6
7class Task:
8 name = "unnamed"
9 pre_cmd = ""
10 cmd = ""
11 post_cmd = ""
12 results = 0
13 remain = 3
14
15 def __init__(self):
16 self.results = []
17
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
33tasks = []
34
35t1 = JavaTestTask()
36t1.name = "C version (without print)"
37t1.tracefile = "../trace_long.dat"
38t1.pre_cmd = ""
39t1.cmd = "pushd ../c >/dev/null; ./main %s; popd >/dev/null;" % t1.tracefile
40t1.post_cmd = ""
41tasks.append(t1)
42
43t3 = JavaTestTask()
44t3.name = "C version (with print)"
45t3.tracefile = "../trace_med.dat"
46t3.pre_cmd = ""
47t3.cmd = "pushd ../c >/dev/null; ./main -p %s; popd >/dev/null;" % t3.tracefile
48t3.post_cmd = ""
49tasks.append(t3)
50
51t5 = JavaTestTask()
52t5.name = "C version (with print, but sent to /dev/null)"
53t5.tracefile = "../trace_long.dat"
54t5.pre_cmd = ""
55t5.cmd = "pushd ../c >/dev/null; ./main -p %s >/dev/null; popd >/dev/null;" % t5.tracefile
56t5.post_cmd = ""
57tasks.append(t5)
58
59t2 = JavaTestTask()
60t2.name = "Java version (without print)"
61t2.tracefile = "../trace_long.dat"
62t2.pre_cmd = ""
63t2.cmd = "pushd ../java >/dev/null; java read_trace %s; popd >/dev/null;" % t2.tracefile
64t2.post_cmd = ""
65tasks.append(t2)
66
67t4 = JavaTestTask()
68t4.name = "Java version (with print)"
69t4.tracefile = "../trace_short.dat"
70t4.pre_cmd = ""
71t4.cmd = "pushd ../java >/dev/null; java read_trace -p %s; popd >/dev/null;" % t4.tracefile
72t4.post_cmd = ""
73tasks.append(t4)
74
75t6 = JavaTestTask()
76t6.name = "Java version (with print, but sent to /dev/null)"
77t6.tracefile = "../trace_med.dat"
78t6.pre_cmd = ""
79t6.cmd = "pushd ../java >/dev/null; java read_trace -p %s >/dev/null; popd >/dev/null;" % t6.tracefile
80t6.post_cmd = ""
81tasks.append(t6)
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))
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()
139 #print "Min: " + str(round(min(task.results), 3))
140 #print "Max: " + str(round(max(task.results), 3))
141 print ""
142
143main()
This page took 0.023645 seconds and 4 git commands to generate.