python能不能代替c_使用Python/C接口代替Cython有什么好处吗?

现在的“最佳答案”听起来有点像我耳边的FUD。首先,普通的开发人员用C编写的代码比NumPy+Cython给你的代码要快,这一点并不明显。恰恰相反,在Python环境中正确运行所需的C代码所需的时间通常要花在用Cython编写一个快速原型、对它进行基准测试、优化它、以更快的方式重写它、再次对它进行基准测试上,然后再决定其中是否有真正需要用手工调试的C语言重写2%的代码并从Cython代码调用它,可能会提高5-10%的性能,也可能不会。

我正在用Cython编写一个库,它目前有大约18K行Cython代码,可以翻译成将近200K行C代码。我曾经通过在正确的位置注入大约20行手动调整的C代码,使一些非常重要的内部基级函数的速度提高了近25%。我花了几个小时重写并优化了这个小部分。与我当初不用C语言编写(并且必须维护)库所节省的大量时间相比,这真的是微不足道。

即使你比Cython更了解C,如果你了解Python和C,你也会很快学会Cython,无论在什么情况下,这都是值得投资的,尤其是当你学习数字的时候。80-95%的代码将从用高级语言编写中受益匪浅,因此您可以放心地将节省的一半时间投入到编写代码的速度上,就像您现在用低级语言编写代码一样。

,你想“把代码作为独立的C/C++库分发”是一个很好的理由,坚持C++。Cython总是依赖于CPython,这是一个相当依赖性的东西。但是,使用普通C/C++(除了Python接口)将不允许你利用NoMPy,因为这也依赖于CPython。所以,像往常一样,用C语言写东西的时候,你必须先做大量的基础工作,然后才能使用实际的功能。在开始这项工作之前,你应该认真考虑一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值