时间分析器模块

提供用于时间性能分析的工具

moprofiler.time.__time_profiler_pool = {}

用来存储时间分析器的池子

moprofiler.time._make_time_profiler_getter(self_or_cls=None)[源代码]

生成时间分析器获取器

参数:self_or_cls (TimeProfilerMixin) – 时间分析器 Mixin 实例或类
moprofiler.time.time_profiler_getter(name, raise_except=True, force_new_profiler=False)

用于存储装饰函数、静态方法时创建的时间分析器

class moprofiler.time.TimeProfilerMixin[源代码]

基类:moprofiler.base.ProfilerMixin

时间分析器 Mixin 类

用以提供复杂的时间分析功能,如:

  1. 针对需要多次调用的方法进行累加分析的场景
  2. 在一次代码执行流程中同时分析多个方法,并灵活控制分析结果的输出
classmethod time_profiler(name, raise_except=True, force_new_profiler=False)[源代码]

获取指定的时间分析器

参数:
  • name (str) – 指定的时间分析器名称
  • raise_except (bool) – 若不存在是否抛出异常,默认为是,若为否,则会生成指定名称的分析器并返回
返回:

时间分析器对象

返回类型:

LineProfiler

引发:

KeyError – 获取的键名不存在

moprofiler.time.time_profiler(_function=None, name='', print_res=True, stream=None, output_unit=None, stripzeros=False, force_new_profiler=False)[源代码]

时间分析器装饰器

逐行分析被装饰函数每行的执行时间

参数:
  • _function (types.FunctionType or types.MethodType) – 被封装的对象,由解释器自动传入,不需关心
  • name (str) – 关键字参数,被装饰方法所使用的时间分析器名称,默认为使用被装饰方法的方法名
  • print_res (bool) – 是否在被装饰对象退出后立刻打印分析结果,默认为 True 。 当需要将多次调用结果聚集后输出时,可设为 False ,并通过 Mixin 中的 time_profiler 进行结果输出
  • stream (object) – 输出方式,默认为 stdout ,可指定为文件
  • output_unit (str) – 输出单位
  • stripzeros (bool) – 是否去零
  • force_new_profiler (bool) – 是否强制使用新的分析器,默认为
返回:

装饰后的函数或方法

返回类型:

types.FunctionType or types.MethodType