我对我的程序有一个简单的计划:使用Python进行所有输入解析和数据预处理,然后传递大量结构并调用我将用C编写的ONCE数字运算函数。 这就是我的问题:什么会更快(就执行速度而言)?用ctypes调用C函数还是用cython写它?
答案 0 :(得分:1)
鉴于无限量的时间来优化代码,Ctypes可能会更快,因为您可以将尽可能多的繁重工作尽可能地推送到编译代码中。
cython采用类似python的代码并将其转换为具有许多警告和异常的C代码。如果cython是完美的,它将像在C-API中编写python一样快。 cython是快速代码开发的绝佳工具,但还不是那么完美。
Ctypes需要对输入变量进行一些操作才能干净利落地进入C语言。如果您正在进行相当多的数据预处理,这可能不是问题。
与往常一样,您需要确定执行速度与编码时间/代码可读性/代码可重用性的比较有多重要 对我来说,只对执行速度感兴趣并且仍想在python中编写任何代码,这似乎很奇怪。
相反,python编码的一般范例往往与python包装器保存在一起的大部分C代码形成鲜明对比