带有面向对象代码的Python line_分析器
我试图将python用于一些面向对象的代码,但在获得所需的输出时遇到了困难。我的对象的形式如下:带有面向对象代码的Python line_分析器,python,profiling,line-profiler,Python,Profiling,Line Profiler,我试图将python用于一些面向对象的代码,但在获得所需的输出时遇到了困难。我的对象的形式如下: myObj类: 定义初始化(自身,输入): #过程输入 @侧面图 def运行(自): 对于范围内的t(self.timesteps): self.update() @侧面图 def更新(自我): self.A+=self.dA() self.B+=self.dB() @侧面图 def dA(自我): #过程数据 @侧面图 def dB(自我): #过程数据 我想使用@profiledecorat
myObj类:
定义初始化(自身,输入):
#过程输入
@侧面图
def运行(自):
对于范围内的t(self.timesteps):
self.update()
@侧面图
def更新(自我):
self.A+=self.dA()
self.B+=self.dB()
@侧面图
def dA(自我):
#过程数据
@侧面图
def dB(自我):
#过程数据
我想使用@profile
decorator对每个方法进行行分析,但在iPython环境中使用以下命令运行分析程序时:
test=myObj()
%lprun-f test.run test.run()
我得到以下信息:
Timer unit: 1e-06 s
Total time: 0 s
File: /Users/-----/anaconda3/lib/python3.7/site-packages/line_profiler.py
Function: wrapper at line 111
Line # Hits Time Per Hit % Time Line Contents
==============================================================
111 @functools.wraps(func)
112 def wrapper(*args, **kwds):
113 self.enable_by_count()
114 try:
115 result = func(*args, **kwds)
116 finally:
117 self.disable_by_count()
118 return result
我在没有@profile
装饰器的情况下尝试过它,它告诉我所有的时间都花在更新
方法上,这一点非常清楚