【发布时间】:2016-09-16 08:54:51
【问题描述】:
我用 Python 编写了一个代码。代码中有一部分进行集成,计算时间非常长。但是相同的集成在 C 中花费的时间要少得多。我想在 C 中运行该部分(这将需要一些输入)并使用输出在 python 中运行其他代码。换句话说,我在 python 中有一个非常大的代码,我想在 C 中运行其中的一小部分。请告诉我该怎么做。
【问题讨论】:
-
首先,向我们展示至少 Python 代码和 C 代码的一个子集。它是 Python 扩展还是常规 C?
-
不详细,只推荐SWIG
-
标题所问的与正文所说的完全相反。在使用外语之前(当然可以),尝试加速你的 Pytoh 代码。通过正确使用 Python(“pythonify”),我已经看到了 10 倍甚至更多的改进。此外,您可能想查看 numpy。
-
我赞同 SWIG 的建议。去谷歌上查询。你会弄清楚如何在你的代码中使用它。
-
您也可以尝试通过将代码转换为使用 cython 来稍微更改代码。这是一种类似 python 的语言,可以编译为 C,然后编译为本机代码。它通常会为数字繁重的代码带来巨大的加速。 scipy 还优化了数值积分代码,总体上可能是更好的选择:docs.scipy.org/doc/scipy/reference/integrate.html