3 ms·
Slightly modified "benchmark" from above: asyncio: import time import asyncio REPS = 1_000_000 async def coro(): for i in range(REPS
by blattimwind 8y ago
Slightly modified "benchmark" from above:
asyncio:
import time
import asyncio
REPS = 1_000_000
async def coro():
for i in range(REPS):
await asyncio.sleep(0)
t0 = time.perf_counter()
asyncio.run(coro())
dt = time.perf_counter() - t0
print(REPS / dt, 'reps/s')
~180k
asynker (https://github.com/enkore/asynker https://github.com/enkore/asynker):
import time
import asynker
REPS = 1_000_000
async def coro():
for i in range(REPS):
await asynker.suspend()
t0 = time.perf_counter()
sched = asynker.Scheduler()
sched.run_until_complete(coro())
dt = time.perf_counter() - t0
print(REPS / dt, 'reps/s')
~900k
The excellent curio (https://github.com/dabeaz/curio https://github.com/dabeaz/curio):
import time
import curio
REPS = 1_000_000
async def coro():
for i in range(REPS):
await curio.sleep(0)
t0 = time.perf_counter()
curio.run(coro())
dt = time.perf_counter() - t0
print(REPS / dt, 'reps/s')
~180k
Not that this number is hugely important.
- wenc 8y agoWould uvloop change these benchmarks? https://github.com/MagicStack/uvloop https://github.com/MagicStack/uvloop
- blattimwind 8y agoIt actually does, but again, this is a "how fast can you do nothing" microbenchmark. It's a bit of trivia for almost all intents and purposes. (The number's 500k)