我有一个函数从已编译的Cython库multiply_vec
调用函数,如下所示:
def ScorePair(self):
return multiply_vec.multiply_v2(self.x,self.y)
运行cProfile时,我得到以下输出:
ncalls tottime percall cumtime percall filename:lineno(function)
5584965 19.437 0.000 19.437 0.000 {multiply_vec.multiply_v2}
5584965 13.567 0.000 33.005 0.000 model.py:235(ScorePair)
我想知道为什么ScorePair的tottime为13.7秒 - 它应该不接近零?或者是否有一些隐藏的开销会导致整个时间?
我的猜测是,从函数输出到Python(Numpy)类型的转换可能会导致这种开销,但我不确定。只是想知道是否有人可以对此有所了解,或者知道开销的来源。谢谢!