]> kaliko git repositories - python-musicpdaio.git/blobdiff - mpdaio-time.py
Add per connection command wrapper
[python-musicpdaio.git] / mpdaio-time.py
index 1e21080725ea31fa9035462c2e4a5bbf7e18cf12..af9ec3a445a9c1255801b3572e7c9d6fd291827f 100644 (file)
@@ -5,8 +5,6 @@ import timeit
 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()
@@ -24,48 +22,78 @@ async def run_cli():
     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()