You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Trio should offer an async timeit utility. It's useful for measuring performance of "fast" async calls such as sleep(0).
It's important for both trio devs and users to understand the overhead of checkpoints. E.g. for users: in situations where you're quickly draining an async queue, or when you're deciding how frequently to call sleep(0) in some CPU bound loop.
Here's an example using the pytest harness. Ideally we'd have a module with the same API as timeit, only running within a trio async context.
asyncdeftest_sleep0_perf():
n=10dt=0whileTrue:
t0=perf_counter()
for_inrange(n):
awaittrio.sleep(0)
dt=perf_counter() -t0ifdt<0.2:
n*=10else:
breakprint(f'{1e6*dt/n: .1f} usec average in {n} calls')
assertFalse
The text was updated successfully, but these errors were encountered:
belm0
changed the title
trio_timeit utility
trio.timeit utility
Sep 22, 2018
Trio should offer an async timeit utility. It's useful for measuring performance of "fast" async calls such as
sleep(0)
.It's important for both trio devs and users to understand the overhead of checkpoints. E.g. for users: in situations where you're quickly draining an async queue, or when you're deciding how frequently to call sleep(0) in some CPU bound loop.
Here's an example using the pytest harness. Ideally we'd have a module with the same API as
timeit
, only running within a trio async context.The text was updated successfully, but these errors were encountered: