13
13
_STEADY_STATE = "steady-state"
14
14
15
15
16
- def speed_comparison (source : str , test_name : str ):
16
+ def speed_comparison (source : str , test_name : str , reps : int ):
17
17
print ()
18
18
print (f"Starting speed test: { test_name } " )
19
19
20
20
def load_helper (data , label , timings , lazy ):
21
21
codes = []
22
22
t0 = time .perf_counter ()
23
- for _ in range (1000 ):
23
+ for _ in range (reps ):
24
24
code = marshal .loads (data , lazy = lazy )
25
25
codes .append (code )
26
26
t1 = time .perf_counter ()
@@ -90,6 +90,7 @@ def last_exec_time(t):
90
90
SpeedTestParams = namedtuple (
91
91
"SpeedTestParams" ,
92
92
[
93
+ "num_reps" ,
93
94
"num_funcs" ,
94
95
"func_length" ,
95
96
"num_vars" ,
@@ -102,6 +103,7 @@ def last_exec_time(t):
102
103
103
104
104
105
def test_name (p : SpeedTestParams ):
106
+ nreps = p .num_reps
105
107
nfuncs = p .num_funcs
106
108
nvars = p .num_vars
107
109
scope = "locals" if p .is_locals else "globals"
@@ -110,7 +112,7 @@ def test_name(p: SpeedTestParams):
110
112
consts = "consts" if p .is_vary_constants else ""
111
113
return (
112
114
f"{ shared :6} { is_call :4} { scope :7} { consts :6} "
113
- f"{ nfuncs :4} funcs, { nvars :4} vars"
115
+ f"{ nfuncs :4} funcs, { nvars :4} vars, { nreps :4 } reps "
114
116
)
115
117
116
118
@@ -162,6 +164,7 @@ def get_source(self):
162
164
def run_tests ():
163
165
results = {}
164
166
for params in itertools .product (
167
+ [1000 ], # num_reps
165
168
[100 ], # num_funcs
166
169
[100 ], # func_length
167
170
[10 , 100 ], # num_vars
@@ -174,7 +177,7 @@ def run_tests():
174
177
while gc .collect ():
175
178
pass
176
179
builder = SpeedTestBuilder (p )
177
- results [p ] = speed_comparison (builder .get_source (), test_name (p ))
180
+ results [p ] = speed_comparison (builder .get_source (), test_name (p ), p . num_reps )
178
181
return results
179
182
180
183
0 commit comments