-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
A time_cost decorator for both common functions and coroutine functions, using wraps in functools module.
import asyncio
import time
from functools import wraps
def time_cost(fn):
if asyncio.iscoroutinefunction(fn):
@wraps(fn)
async def wrapper(*args, **kwargs):
start = time.time_ns()
res = await fn(*args, **kwargs)
print(f'func {fn.__name__} costs {(time.time_ns() - start) / 1e6:.2f} ms')
return res
return wrapper
else:
@wraps(fn)
def wrapper(*args, **kwargs):
start = time.time_ns()
res = fn(*args, **kwargs)
print(f'func {fn.__name__} costs {(time.time_ns() - start) / 1e6:.2f} ms')
return res
return wrapperHow does it work:
- TODO
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels