我正在尝试使用Cython来编写我的项目.
我的计划是在C中编写.dll,并通过Cython从Python调用它们.所以我可以拥有C的高计算性能,同时保持Python开发的简单性.
随着我走得更远,我有点困惑.据我所知,Cython将python代码包装成C.由于C具有更好的计算性能,因此性能得到了提高.我对此是否正确?
解决方法
首先,让我解开你似乎有的一些误解.
>从另一个程序调用库将加快您的库.
不,不,不.这就像说“以一定的速度驾驶汽车比让F1赛车以同样的速度驾驶汽车”更为有意义.这没有任何意义.当Python加载你的库时,它会加载和处理它,类似于内核加载和处理它的方式(事实上,内核在Python的情况下也是如此).事实上,这种“双重加载”(这不是动态库的原始设计)可能会减慢您的库.我应该强调这是一个微小的差异,而不应该关注普通的程序员.
> Cython将Python代码“包装”到C中
它没有.它将python代码编译成C,然后将其编译成动态库,以便Python稍后加载.这可能会在某种程度上优化您的Python代码,并使您能够与原子C数据类型进行交互,并将Python的魔力放在首位.虽然这很酷,但它并没有给你的代码任何“神奇”的能力.
我还想补充一点,一些测试证明Java(滚动)实际上比C,C,Python和其他语言更快,因为JVM非常优化.这并不意味着你应该使用Java(因为它有其他问题),但它应该提供透视.