cProfile在函数中显示重要的tottime,它只调用外部Cython函数

时间:2016-05-04 00:10:28

标签: python numpy cython cprofile

我有一个函数从已编译的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)类型的转换可能会导致这种开销,但我不确定。只是想知道是否有人可以对此有所了解,或者知道开销的来源。谢谢!

0 个答案:

没有答案