10
10
11
11
from scipy .stats import norm , tmean , tvar , tstd
12
12
from numpy import array , median
13
+ from numpy .ma import masked_equal
13
14
14
15
import aiohttp
15
16
@@ -241,29 +242,6 @@ def run(test, count, concurrency, *, loop, verbose):
241
242
return data
242
243
243
244
244
- ARGS = argparse .ArgumentParser (description = "Run benchmark." )
245
- ARGS .add_argument (
246
- '-t' , '--tries' , action = "store" ,
247
- nargs = '?' , type = int , default = 30 ,
248
- help = 'count of tries (default: `%(default)s`)' )
249
- ARGS .add_argument (
250
- '-n' , '--count' , action = "store" ,
251
- nargs = '?' , type = int , default = 10000 ,
252
- help = 'requests count (default: `%(default)s`)' )
253
- ARGS .add_argument (
254
- '-c' , '--concurrency' , action = "store" ,
255
- nargs = '?' , type = int , default = 100 ,
256
- help = 'count of parallel requests (default: `%(default)s`)' )
257
- ARGS .add_argument (
258
- '-p' , '--plot-file-name' , action = "store" ,
259
- type = str , default = None ,
260
- dest = 'plot_file_name' ,
261
- help = 'file name for plot (default: `%(default)s`)' )
262
- ARGS .add_argument (
263
- '-v' , '--verbose' , action = "count" , default = 0 ,
264
- help = 'verbosity level (default: `%(default)s`)' )
265
-
266
-
267
245
def main (argv ):
268
246
args = ARGS .parse_args ()
269
247
@@ -290,29 +268,46 @@ def main(argv):
290
268
291
269
for test_name in sorted (results ):
292
270
293
- data = results [test_name ]
271
+ data = array (results [test_name ])
272
+ trimmed = masked_equal (data , 0 )
294
273
295
- rps = count / array ( data )
274
+ rps = trimmed . size / trimmed
296
275
rps_mean = tmean (rps )
297
- rps_var = tvar (rps )
298
- rps_median = median (rps )
299
- low , high = norm .interval (0.95 , loc = rps_mean , scale = rps_var ** 0.5 )
300
- times = array (data ) * 1000000 / count
276
+ times = trimmed * 1000000 / trimmed .size
301
277
times_mean = tmean (times )
302
278
times_stdev = tstd (times )
303
279
times_median = median (times )
304
280
print ('Results for' , test_name )
305
- print ('RPS: {:d}: [{:d}, {:d}] median {:d} ,\t mean: {:.3f} μs,'
281
+ print ('RPS: {:d},\t mean: {:.3f} μs,'
306
282
'\t standard deviation {:.3f} μs\t median {:.3f} μs'
307
283
.format (int (rps_mean ),
308
- int (low ),
309
- int (high ),
310
- int (rps_median ),
311
284
times_mean ,
312
285
times_stdev ,
313
286
times_median ))
314
287
return 0
315
288
289
+ ARGS = argparse .ArgumentParser (description = "Run benchmark." )
290
+ ARGS .add_argument (
291
+ '-t' , '--tries' , action = "store" ,
292
+ nargs = '?' , type = int , default = 5 ,
293
+ help = 'count of tries (default: `%(default)s`)' )
294
+ ARGS .add_argument (
295
+ '-n' , '--count' , action = "store" ,
296
+ nargs = '?' , type = int , default = 10000 ,
297
+ help = 'requests count (default: `%(default)s`)' )
298
+ ARGS .add_argument (
299
+ '-c' , '--concurrency' , action = "store" ,
300
+ nargs = '?' , type = int , default = 500 ,
301
+ help = 'count of parallel requests (default: `%(default)s`)' )
302
+ ARGS .add_argument (
303
+ '-p' , '--plot-file-name' , action = "store" ,
304
+ type = str , default = None ,
305
+ dest = 'plot_file_name' ,
306
+ help = 'file name for plot (default: `%(default)s`)' )
307
+ ARGS .add_argument (
308
+ '-v' , '--verbose' , action = "count" , default = 0 ,
309
+ help = 'verbosity level (default: `%(default)s`)' )
310
+
316
311
317
312
if __name__ == '__main__' :
318
313
set_start_method ('spawn' )
0 commit comments