Skip to content

Commit da90d81

Browse files
committed
setup new travis matrix
1 parent 18734d2 commit da90d81

File tree

3 files changed

+117
-5
lines changed

3 files changed

+117
-5
lines changed

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,11 @@ def _patch_cfile(self, cfile):
177177
author="igorcoding",
178178
author_email="igorcoding@gmail.com",
179179
classifiers=[
180+
"Programming Language :: Python :: Only",
180181
"Programming Language :: Python :: 3.5",
181182
"Programming Language :: Python :: 3.6",
182183
"Intended Audience :: Developers",
183-
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
184+
"License :: OSI Approved :: Apache Software License",
184185
"Topic :: Software Development :: Libraries :: Python Modules",
185186
"Topic :: Database :: Front-Ends"
186187
],

temp/bench.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,11 @@ async def bench_asynctnt(n, b, loop=None):
5858

5959
async def bulk_f():
6060
for _ in range(n_requests_per_bulk):
61-
# await conn.ping()
61+
await getattr(conn, method)(*args)
62+
await conn.ping()
6263
# await conn.call('test')
6364
# await conn.eval('return "hello"')
64-
await conn.select(512)
65+
# await conn.select(512)
6566
# await conn.replace('tester', [2, 'hhhh'])
6667
# await conn.update('tester', [2], [(':', 1, 1, 3, 'yo!')])
6768

@@ -90,10 +91,10 @@ async def bench_aiotarantool(n, b, loop=None):
9091

9192
async def bulk_f():
9293
for _ in range(n_requests_per_bulk):
93-
# await conn.ping()
94+
await conn.ping()
9495
# await conn.call('test')
9596
# await conn.eval('return "hello"')
96-
await conn.select(512)
97+
# await conn.select(512)
9798
# await conn.replace('tester', [2, 'hhhh'])
9899
# await conn.update('tester', [2], [(':', 1, 1, 3, 'yo!')])
99100

temp/superbench.py

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
import argparse
2+
import asyncio
3+
import datetime
4+
import logging
5+
import math
6+
import sys
7+
8+
9+
def main():
10+
logging.basicConfig(level=logging.WARNING, stream=sys.stdout)
11+
parser = argparse.ArgumentParser()
12+
parser.add_argument('-n', type=int, default=200000,
13+
help='number of executed requests')
14+
parser.add_argument('-b', type=int, default=200, help='number of bulks')
15+
args = parser.parse_args()
16+
17+
print('Running {} requests in {} batches. '.format(args.n, args.b))
18+
19+
scenarios = [
20+
['ping', []],
21+
['call', ['test']],
22+
['eval', ['return "hello"']],
23+
['select', [512]],
24+
['replace', ['tester', [2, 'hhhh']]],
25+
['update', ['tester', [2], [(':', 1, 1, 3, 'yo!')]]],
26+
]
27+
28+
for use_uvloop in [False, True]:
29+
if use_uvloop:
30+
import uvloop
31+
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
32+
asyncio.set_event_loop(None)
33+
loop = asyncio.new_event_loop()
34+
asyncio.set_event_loop(loop)
35+
36+
print('--------- uvloop: {} --------- '.format(use_uvloop))
37+
38+
for bench in [bench_aiotarantool, bench_asynctnt]:
39+
for scenario in scenarios:
40+
loop.run_until_complete(
41+
bench(args.n, args.b,
42+
scenario[0], scenario[1],
43+
loop=loop)
44+
)
45+
46+
47+
async def bench_asynctnt(n, b, method, args=[], loop=None):
48+
import asynctnt
49+
from asynctnt.iproto.protocol import Iterator
50+
51+
loop = loop or asyncio.get_event_loop()
52+
53+
conn = asynctnt.Connection(host='127.0.0.1',
54+
port=3303,
55+
username='t1',
56+
password='t1',
57+
reconnect_timeout=1, loop=loop)
58+
await conn.connect()
59+
60+
n_requests_per_bulk = math.ceil(n / b)
61+
62+
start = datetime.datetime.now()
63+
64+
async def bulk_f():
65+
for _ in range(n_requests_per_bulk):
66+
await getattr(conn, method)(*args)
67+
68+
coros = []
69+
for b in range(b):
70+
coros.append(asyncio.ensure_future(bulk_f(), loop=loop))
71+
72+
if coros:
73+
await asyncio.wait(coros, loop=loop)
74+
75+
end = datetime.datetime.now()
76+
elapsed = end - start
77+
print('asynctnt [{}] Elapsed: {}, RPS: {}'.format(
78+
method, elapsed, n / elapsed.total_seconds()))
79+
80+
81+
async def bench_aiotarantool(n, b, method, args=[], loop=None):
82+
import aiotarantool
83+
84+
loop = loop or asyncio.get_event_loop()
85+
conn = aiotarantool.connect('127.0.0.1', 3303,
86+
user='t1', password='t1',
87+
loop=loop)
88+
89+
n_requests_per_bulk = math.ceil(n / b)
90+
start = datetime.datetime.now()
91+
92+
async def bulk_f():
93+
for _ in range(n_requests_per_bulk):
94+
await getattr(conn, method)(*args)
95+
96+
coros = []
97+
for b in range(b):
98+
coros.append(asyncio.ensure_future(bulk_f(), loop=loop))
99+
100+
if coros:
101+
await asyncio.wait(coros, loop=loop)
102+
103+
end = datetime.datetime.now()
104+
elapsed = end - start
105+
print('aiotarantool [{}] Elapsed: {}, RPS: {}'.format(
106+
method, elapsed, n / elapsed.total_seconds()))
107+
108+
109+
if __name__ == '__main__':
110+
main()

0 commit comments

Comments
 (0)