Shortcut

注意

此文档中列出的为 moprofiler 对外提供功能的捷径说明,从而缩短调用路径

提供针对时间、内存的分析器,以及秒表日志打点工具

class moprofiler.TimeProfiler(_function=None, stream=None, output_unit=None, stripzeros=False, **kwargs)[源代码]

基类:moprofiler.base.ProfilerClassDecorator

时间分析器的类装饰器

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

参数:
  • _function (types.FunctionType or types.MethodType) – 被封装的对象,由解释器自动传入,不需关心
  • stream (object) – 输出方式,默认为 stdout ,可指定为文件
  • output_unit (str) – 输出单位
  • stripzeros (bool) – 是否去零
profiler_factory

line_profiler.LineProfiler 的别名

print_stats()[源代码]

打印统计结果

class moprofiler.MemoryProfiler(_function=None, stream=None, precision=1, backend='psutil', **kwargs)[源代码]

基类:moprofiler.base.ProfilerClassDecorator

内存分析器的类装饰器

参数:
  • _function (types.FunctionType or types.MethodType) – 被封装的对象,由解释器自动传入,不需关心
  • stream (object) – 输出方式,默认为 stdout ,可指定为文件
  • precision (int) – 精度,默认为 1
  • backend (str) – 内存监控的 backend ,默认为 ‘psutil’
profiler_factory

MemoryProfilerWrapper 的别名

print_stats()[源代码]

打印统计结果

class moprofiler.StopwatchMixin[源代码]

基类:moprofiler.base.ProfilerMixin

秒表 Mixin 类

用以提供复杂的秒表功能,如:

  1. 针对需要多次调用的方法进行累加记录的场景
  2. 在一次代码执行流程中同时记录多个方法,并灵活控制记录结果的输出
moprofiler.stopwatch(_function=None, print_args=False, logger=None, print_mem=False, fmt='', name='', logging_level=20, **dkwargs)[源代码]

返回秒表监控下的函数或方法

通过额外的关键字参数,支持配置自定义的值到输出模板中

日志输出模板中可使用变量如下:

  1. name : 当前秒表名称
  2. args : 被装饰函数/方法的位置参数
  3. kwargs : 被装饰函数/方法
  4. time_use : 函数/方法执行耗时
  5. 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

moprofiler.time_profiler

此变量是为了向后兼容旧版本的命名

moprofiler.time.TimeProfiler 的别名

moprofiler.memory_profiler

此变量是为了向后兼容旧版本的命名

moprofiler.memory.MemoryProfiler 的别名