]> kaliko git repositories - python-musicpdaio.git/blob - mpdaio-time.py
Add per connection command wrapper
[python-musicpdaio.git] / mpdaio-time.py
1 import asyncio
2 import logging
3 import timeit
4
5 from mpdaio.client import MPDClient
6 from musicpd import MPDClient as MPDClientNAIO
7
8
9 async def run_cli():
10     cli = MPDClient()
11     cli.mpd_timeout = 0.1
12     #current = await cli.currentsong()
13     #print(current)
14
15     #await cli.connect(host='kaliko.me', port='6601')
16     cli = MPDClient(host='kaliko.me', port=6601)
17     cli.mpd_timeout = 0.1
18     print(await cli.currentsong())
19     print(await cli.playlistinfo())
20     await cli.list('artist')
21     #print(await cli.playlistinfo())
22     await cli.close()
23
24
25 async def gather_calls():
26     await asyncio.gather(
27             cli.ping(),
28             cli.currentsong(),
29             cli.playlistinfo(),
30             cli.list('artist'),
31             cli.listallinfo('The Doors'),
32             cli.listallinfo('The Doors'),
33             cli.listallinfo('The Doors'),
34             cli.listallinfo('AFX'),
35             cli.listallinfo('AFX'),
36             cli.listallinfo('AFX'),
37             cli.find('(MUSICBRAINZ_ARTISTID == "9efff43b-3b29-4082-824e-bc82f646f93d")'),
38             )
39
40
41 async def aio_warmup():
42     # print(len(cli._pool._connections.setdefault(host, [])))
43     await gather_calls()
44     # print(len(cli._pool._connections.setdefault(host, [])))
45
46
47 async def aio():
48     # Group tasks together
49     try:
50         await gather_calls()
51     finally:
52         # finally close
53         await cli.close()
54
55
56 def noaio():
57     cli.ping()
58     cli.currentsong()
59     cli.playlistinfo()
60     cli.list('artist')
61     cli.listallinfo('The Doors')
62     cli.listallinfo('The Doors')
63     cli.listallinfo('The Doors')
64     cli.listallinfo('AFX')
65     cli.listallinfo('AFX')
66     cli.listallinfo('AFX')
67     cli.find('(MUSICBRAINZ_ARTISTID == "9efff43b-3b29-4082-824e-bc82f646f93d")')
68
69
70 if __name__ == '__main__':
71     # Setup
72     n = 5
73     host = ('kaliko.me', '6601')
74     logging.basicConfig(level=logging.INFO,
75                         format='%(levelname)-8s %(module)-10s %(message)s')
76
77     print('Running aio code')
78     cli = MPDClient(*host)
79     ev = asyncio.get_event_loop()
80     ev.run_until_complete(aio_warmup())
81
82     # Time it
83     #t = timeit.Timer('ev.run_until_complete(aio_warmup())', globals=globals())
84     t = timeit.Timer('ev.run_until_complete(aio_warmup())', globals=globals())
85     print('Start timeit')
86     print(t.timeit(n))
87     print(t.timeit(n))
88     ev.run_until_complete(cli.close())
89
90     # Setup
91     print('Running non aio code')
92     cli = MPDClientNAIO()
93     cli.mpd_timeout = 0.1
94     cli.connect(*host)
95     # Time it
96     t = timeit.Timer('noaio()', globals=globals())
97     print(t.timeit(n))
98     print(t.timeit(n))
99     cli.disconnect()