内存分析器模块¶
提供用于内存性能分析的工具
-
moprofiler.memory.
__memory_profiler_pool
= {}¶ 用来存储内存分析器的池子
-
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 类
用以提供复杂的内存分析功能,如:
- 针对需要多次调用的方法进行累加分析的场景
- 在一次代码执行流程中同时分析多个方法,并灵活控制分析结果的输出
-
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()
方法获取实例并返回参数: 返回: 内存分析器对象
返回类型:
-
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