获取函数执行时间的装饰器
def log_execution_time(func):
@wraps(func)
def wrapper(*args, **kwargs):
start = time.perf_counter()
res = func(*args, **kwargs)
end = time.perf_counter()
ik_global.Logger.info('{} took {} ms'.format(
func.__name__, (end - start) * 1000))
return res
return wrapper
使用
@classmethod
@log_execution_time
def one(cls, **kwargs):
try:
ms = session.query(cls).filter_by(**kwargs).all()
session.commit()
except Exception as e:
session.rollback()
ik_global.Logger.info("one err: {}".format(str(e)))
return "one err"
return [m.serialize for m in ms]
本文介绍了一种Python装饰器,用于记录并打印函数的执行时间,通过使用time模块的perf_counter函数来精确测量时间,适用于各类函数调用场景,特别对于数据库操作函数,如ORM查询等,能有效监控其性能。
874

被折叠的 条评论
为什么被折叠?



