内存分析器模块

提供用于内存性能分析的工具

moprofiler.memory.__memory_profiler_pool = {}

用来存储内存分析器的池子

class moprofiler.memory.MemoryProfiler(**kw)[源代码]

基类:memory_profiler.LineProfiler

内存分析器

print_stats(stream=None, precision=1)[源代码]

打印统计结果

参数:
  • stream (object) – 输出方式,默认为 stdout ,可指定为文件
  • precision (int) – 精度
moprofiler.memory._make_memory_profiler_getter(self_or_cls=None)[源代码]

生成内存分析器获取器

参数:self_or_cls (MemoryProfilerMixin) – 内存分析器 Mixin 实例或类
返回类型:memory_profiler_getter
moprofiler.memory.memory_profiler_getter(name, backend='psutil', raise_except=True, force_new_profiler=False)

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

class moprofiler.memory.MemoryProfilerMixin[源代码]

基类:moprofiler.base.ProfilerMixin

内存分析器 Mixin 类

用以提供复杂的内存分析功能,如:

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

获取指定的内存分析器

参数:
  • name (str) – 指定的内存分析器名称
  • backend (str) – 内存分析器的处理后端
  • raise_except (bool) – 若不存在是否抛出异常,默认为是,若为否,则会生成指定名称的分析器并返回
  • force_new_profiler (bool) – 是否强制使用新的分析器,默认为
返回:

内存分析器对象

返回类型:

MemoryProfiler

引发:

KeyError – 获取的键名不存在

moprofiler.memory._process_backend(backend='psutil')[源代码]

处理内存分析器的后端

参数:backend (str) – 内存监控的 backend ,默认为 ‘psutil’
返回:处理后的后端名称
返回类型:str
moprofiler.memory._get_profiler(args, backend, name, func, force_new_profiler=False)[源代码]

获取分析器

若当前被装饰的方法未继承自 MemoryProfilerMixin , 则将其当做普通函数装饰,使用指定的 backend ,进行初始化并返回

否则,使用被装饰方法的第一个参数,并调用其 memory_profiler() 方法获取实例并返回

参数:
  • args (list) – 被装饰方法的位置参数列表
  • backend (str) – 内存分析器的处理后端
  • name (str) – 关键字参数,被装饰方法所使用的内存分析器名称,默认为使用被装饰方法的方法名
  • func (types.FunctionType or types.MethodType) – 被装饰的函数/方法
  • force_new_profiler (bool) – 是否强制使用新的分析器,默认为
返回:

内存分析器对象

返回类型:

MemoryProfiler

moprofiler.memory.memory_profiler(_function=None, name='', print_res=True, stream=None, precision=1, backend='psutil', force_new_profiler=False)[源代码]

内存分析器装饰器

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

装饰后的函数或方法

返回类型:

types.FunctionType or types.MethodType