从cython反复调用c ++方法突然变慢了

时间:2014-10-13 14:52:09

标签: c++ cython

我经常使用cython包装c ++类。所有的计算都是用c ++完成的,而cython只用于将变量传递给构造函数并从c ++中获取结果。

对于最近的一个项目,我遇到了以下问题:代码(初始化一个类然后调用一个方法)最初运行正常,但是在重复调用相同的方法之后(我无法准确再现) ),当调用相同的方法时,它突然比正常情况下运行的频率至少慢了1000倍。

我的问题是:什么可能导致这种看似随机的行为,你会如何调试呢?

我知道如果不看代码就无法解决这个问题,但它很大,而且我不知道问题行为的来源。我只想询问如何解决它的提示和策略。

我尝试的事情:

  • 检查c ++代码是否泄漏。
  • 尝试了不同的编译器指令(#cython:wraparound = False,boundscheck = False,...)

一个提示可能是,如果我运行没有ipython的--pylab选项的python代码,它会抱怨找不到符号,但这是我能够识别的唯一问题。

1 个答案:

答案 0 :(得分:0)

这是一个未初始化的成员,偶尔会导致问题,而不是内存泄漏。感谢那些试图帮助的人!

ipython的问题仍然存在,但我在another问题中发布了这个问题。