秒表工具模块¶
提供用于计时打点的秒表工具
-
class
moprofiler.stopwatch.Stopwatch[源代码]¶ 基类:
object秒表类
-
time_buf= None¶ 用来存储计时打点时间
-
mem_buf= None¶ 用来存储打点内存
-
name= None¶ 秒表的名称,可在装饰时设置,默认为使用被装饰方法的方法名
-
dkwargs= None¶ 用来存储最终输出时使用的变量
-
dotting_param_pre= None¶ 用来记录上次打点输出时的参数信息
-
logger= None¶ 用来日志输出的 logger
-
logging_level= None¶ 日志输出级别
-
final_fmt= None¶ 输出最终计时结果的字符串模板
-
is_print_memory= None¶ 是否打印内存
-
wrap_generator(func, wrap_param)[源代码]¶ 封装一个生成器从而使用秒表对其进行观察
参数: - func (types.FunctionType or types.MethodType) – 被封装的函数,由解释器自动传入,不需关心
- wrap_param (dict) – 封装时传入的参数字典
返回: 封装后的方法
返回类型: types.FunctionType or types.MethodType
-
wrap_function(func, wrap_param)[源代码]¶ 封装一个函数从而使用秒表对其进行观察
参数: - func (types.FunctionType or types.MethodType) – 被封装的函数,由解释器自动传入,不需关心
- wrap_param (dict) – 封装时传入的参数字典
返回: 封装后的方法
返回类型: types.FunctionType or types.MethodType
-
dotting(fmt='', logging_level=None, memory=False, mute=False, **kwargs)[源代码]¶ 输出打点日志
会在打点时记录当前的时间&进程内存使用(若
memory为True),并将其与上次的打点记录做差, 分别获取时间差time_diff、内存差memory_diff,再将其与进入函数时的记录做差, 分别获取到时间差time_total、内存差memory_total。将以上四个变量传入
fmt模板中格式化后输出到log。 除上述变量外,您还可以使用装饰器参数中指定的变量。注意仅当
memory为真时,才会记录日志情况,否则将直接跳过。日志输出模板中可使用变量如下:
idx: 当前打点的序号,从 1 开始time_diff: 距上次打点间的时间差time_total: 距函数/方法开始时的时间差memory_diff: 距上次打点(memory=True)间的内存差,跳过未记录内存的时间打点,直到函数/方法进入时的内存记录memory_total: 距函数/方法开始时的内存差
参数:
-
-
class
moprofiler.stopwatch.StopwatchMixin[源代码]¶ 基类:
moprofiler.base.ProfilerMixin秒表 Mixin 类
用以提供复杂的秒表功能,如:
- 针对需要多次调用的方法进行累加记录的场景
- 在一次代码执行流程中同时记录多个方法,并灵活控制记录结果的输出
-
moprofiler.stopwatch.stopwatch(_function=None, print_args=False, logger=None, print_mem=False, fmt='', name='', logging_level=20, **dkwargs)[源代码]¶ 返回秒表监控下的函数或方法
通过额外的关键字参数,支持配置自定义的值到输出模板中
日志输出模板中可使用变量如下:
name: 当前秒表名称args: 被装饰函数/方法的位置参数kwargs: 被装饰函数/方法time_use: 函数/方法执行耗时mem_use: 函数/方法执行内存
参数: - _function (types.FunctionType or types.MethodType) – 被封装的对象,由解释器自动传入,不需关心
- print_args (bool) – 是否打印被装饰函数的参数列表,若含有较长的参数,可能造成日志过长,开启时请注意
- logger (logging.Logger) – 可传入指定的日志对象,便于统一输出样式,默认使用该模块中的全局 logger
- print_mem (bool) – 是否在方法退出时打印内存信息,默认为 False
- fmt (str) – 用于格式化输出的模板,可在了解所有内置参数变量后自行定制输出样式,若指定该参数则会忽略 print_args
- name (str) – 关键字参数,被装饰方法代理生成的 stopwatch 所使用的名称,默认为使用被装饰方法的方法名
- logging_level (int) – 打印日志的级别,默认为 INFO
返回: 装饰后的函数
返回类型: types.FunctionType or types.MethodType