from mpdaio.client import MPDClient
from musicpd import MPDClient as MPDClientNAIO
-logging.basicConfig(level=logging.DEBUG,
- format='%(levelname)-8s %(module)-10s %(message)s')
async def run_cli():
cli = MPDClient()
await cli.close()
+async def gather_calls():
+ await asyncio.gather(
+ cli.ping(),
+ cli.currentsong(),
+ cli.playlistinfo(),
+ cli.list('artist'),
+ cli.listallinfo('The Doors'),
+ cli.listallinfo('The Doors'),
+ cli.listallinfo('The Doors'),
+ cli.listallinfo('AFX'),
+ cli.listallinfo('AFX'),
+ cli.listallinfo('AFX'),
+ cli.find('(MUSICBRAINZ_ARTISTID == "9efff43b-3b29-4082-824e-bc82f646f93d")'),
+ )
+
+
+async def aio_warmup():
+ # print(len(cli._pool._connections.setdefault(host, [])))
+ await gather_calls()
+ # print(len(cli._pool._connections.setdefault(host, [])))
+
+
async def aio():
- cli = MPDClient(host='kaliko.me', port=6601)
# Group tasks together
try:
- await asyncio.gather(
- cli.currentsong(),
- # cli.playlistinfo(),
- # cli.list('artist'),
- # cli.listallinfo('The Doors'),
- # cli.listallinfo('AFX')
- )
- # await asyncio.gather(
- # cli.currentsong()
- # )
+ await gather_calls()
finally:
# finally close
await cli.close()
def noaio():
- cli = MPDClientNAIO()
- cli.mpd_timeout = 0.1
- cli.connect(host='kaliko.me', port='6601')
+ cli.ping()
cli.currentsong()
cli.playlistinfo()
cli.list('artist')
cli.listallinfo('The Doors')
+ cli.listallinfo('The Doors')
+ cli.listallinfo('The Doors')
cli.listallinfo('AFX')
- # finally close
- cli.disconnect()
+ cli.listallinfo('AFX')
+ cli.listallinfo('AFX')
+ cli.find('(MUSICBRAINZ_ARTISTID == "9efff43b-3b29-4082-824e-bc82f646f93d")')
+
if __name__ == '__main__':
- asyncio.run(aio())
- asyncio.run(run_cli())
- import sys
- sys.exit(0)
+ # Setup
+ n = 5
+ host = ('kaliko.me', '6601')
+ logging.basicConfig(level=logging.INFO,
+ format='%(levelname)-8s %(module)-10s %(message)s')
+
print('Running aio code')
- t = timeit.Timer('asyncio.run(aio())', globals=globals())
- #print(t.autorange())
- print(t.timeit(10))
- #
+ cli = MPDClient(*host)
+ ev = asyncio.get_event_loop()
+ ev.run_until_complete(aio_warmup())
+
+ # Time it
+ #t = timeit.Timer('ev.run_until_complete(aio_warmup())', globals=globals())
+ t = timeit.Timer('ev.run_until_complete(aio_warmup())', globals=globals())
+ print('Start timeit')
+ print(t.timeit(n))
+ print(t.timeit(n))
+ ev.run_until_complete(cli.close())
+
+ # Setup
print('Running non aio code')
+ cli = MPDClientNAIO()
+ cli.mpd_timeout = 0.1
+ cli.connect(*host)
+ # Time it
t = timeit.Timer('noaio()', globals=globals())
- #print(t.autorange())
- print(t.timeit(10))
+ print(t.timeit(n))
+ print(t.timeit(n))
+ cli.disconnect()