基础模块

提供用于性能分析的相关基类&函数定义

moprofiler.base.proxy(obj, prop, prop_name)[源代码]

为 object 对象代理一个属性

参数:
  • obj (object) – 被代理的对象
  • prop (object) – 代理返回的属性
  • prop_name (str) – 被代理的属性名
返回:

被代理之后的对象

返回类型:

object

moprofiler.base.get_callargs(func, *args, **kwargs)[源代码]

找到层层装饰器下最里层的函数的 callargs

参数:
  • func (function) – 被装饰过的函数
  • args (list) – 调用函数时的位置参数
  • kwargs (dict) – 调用函数时的关键字参数
返回:

调用参数字典

返回类型:

dict

moprofiler.base.get_default_key(self_or_cls, func)[源代码]

获取默认的键名

生成规则 “模块名-类名-方法名”

参数:
  • self_or_cls (object) – 对象或类
  • func (FunctionType or str) – 方法或方法名
返回:

键名

返回类型:

str

moprofiler.base.is_instance_or_subclass(self_or_cls, super_cls)[源代码]

判断对象或类是否继承了指定类

参数:
  • self_or_cls (object) – 对象或类
  • super_cls (class) – 父类
返回:

判断结果

返回类型:

bool

class moprofiler.base.ProfilerMixin[源代码]

基类:object

分析器 Mixin 的基类

classmethod _get_profiler(**kwds)[源代码]

子类需要通过 super 调用父类的 _get_profiler 方法获取代理了指定分析器的 Proxy 对象

参数:
  • self_or_cls (object) – 被代理的对象 or 类
  • callargs (dict) – 调用该上下文管理器时传入的所有调用参数
返回:

返回 Proxy 对象

返回类型:

Iterator[Proxy]