Skip to content

Commit 9a1d879

Browse files
committed
Fix benchmark calculations
1 parent deb8d17 commit 9a1d879

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

benchmark/async.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,11 @@ def do_bomb(rnd):
200200
rnd = ''.join(random.sample(string.ascii_letters, 16))
201201
bombs.append(asyncio.async(do_bomb(rnd)))
202202

203+
t1 = loop.time()
203204
data = (yield from asyncio.gather(*bombs))
204-
return data
205+
t2 = loop.time()
206+
rps = count / (t2 - t1)
207+
return rps, data
205208

206209

207210
@asyncio.coroutine
@@ -230,7 +233,7 @@ def run(test, count, concurrency, *, loop, verbose):
230233
if verbose:
231234
test_name = test.__name__
232235
print("Attack", test_name)
233-
data = yield from attack(count, concurrency, connector, loop, url)
236+
rps, data = yield from attack(count, concurrency, connector, loop, url)
234237
if verbose:
235238
print("Done")
236239

@@ -239,7 +242,7 @@ def run(test, count, concurrency, *, loop, verbose):
239242
assert resp.status == 200, resp.status
240243
resp.release()
241244
server.join()
242-
return data
245+
return rps, data
243246

244247

245248
def main(argv):
@@ -256,27 +259,26 @@ def main(argv):
256259
suite *= tries
257260
random.shuffle(suite)
258261

259-
results = collections.defaultdict(list)
262+
all_times = collections.defaultdict(list)
263+
all_rps = collections.defaultdict(list)
260264
for test in suite:
261265
test_name = test.__name__
262266

263-
times = loop.run_until_complete(run(test, count, concurrency,
264-
loop=loop, verbose=verbose))
265-
results[test_name].append(times)
267+
rps, times = loop.run_until_complete(run(test, count, concurrency,
268+
loop=loop, verbose=verbose))
269+
all_times[test_name].extend(times)
270+
all_rps[test_name].append(rps)
266271

267272
print()
268273

269-
for test_name in sorted(results):
274+
for test_name in sorted(all_rps):
275+
rps = array(all_rps[test_name])
276+
times = array(all_times[test_name]) * 1000
270277

271-
data = array(results[test_name])
272-
trimmed = masked_equal(data, 0)
273-
274-
rps = trimmed.size / trimmed
275278
rps_mean = tmean(rps)
276-
times = trimmed * 1000000 / trimmed.size
277279
times_mean = tmean(times)
278280
times_stdev = tstd(times)
279-
times_median = median(times)
281+
times_median = float(median(times))
280282
print('Results for', test_name)
281283
print('RPS: {:d},\tmean: {:.3f} μs,'
282284
'\tstandard deviation {:.3f} μs\tmedian {:.3f} μs'

0 commit comments

Comments
 (0)