@@ -161,21 +161,23 @@ def __init__(self, config_name, options=None, env=None, iterations=None):
161
161
except :
162
162
self ._iterations = None
163
163
164
+ def override_iterations (self , requested_iterations ):
165
+ return self ._iterations if self ._iterations is not None else requested_iterations
166
+
164
167
def _override_iterations_args (self , args ):
165
168
_args = []
166
169
i = 0
167
170
while i < len (args ):
168
171
arg = args [i ]
169
172
_args .append (arg )
170
173
if arg == '-i' :
171
- _args .append (str (self ._iterations ))
174
+ _args .append (str (self .override_iterations ( int ( args [ i + 1 ])) ))
172
175
i += 1
173
176
i += 1
174
177
return _args
175
178
176
179
def run (self , cwd , args ):
177
- if self ._iterations is not None :
178
- args = self ._override_iterations_args (args )
180
+ args = self ._override_iterations_args (args )
179
181
return super (AbstractPythonIterationsControlVm , self ).run (cwd , args )
180
182
181
183
@@ -202,6 +204,10 @@ class PyPyVm(AbstractPythonIterationsControlVm):
202
204
def __init__ (self , config_name , options = None , env = None , iterations = None ):
203
205
super (PyPyVm , self ).__init__ (config_name , options = options , env = env , iterations = iterations )
204
206
207
+ def override_iterations (self , requested_iterations ):
208
+ # PyPy warms up much faster, half should be enough
209
+ return int (requested_iterations / 2 )
210
+
205
211
@property
206
212
def interpreter (self ):
207
213
home = mx .get_env (ENV_PYPY_HOME )
0 commit comments