原来Cython加速是从Python playbook中借用的(内附大量资料)
强大的Python-to- c编译框架的最新版本增加了从下一个Python版本获得的加速
前言
但是对于那些希望使用python的方便性和c的速度的人来说,cython工具包通过添加静态变量类型和其他代码注释,逐步地将python代码转换为c。
[信息世界评论:13个Primo python Web框架。| 10个核心编码技巧,用于更快的python。|在用InfoWorld的应用程序开发时事通讯进行编程时跟上热门话题。]
Cython 0.25上周出现了一系列改进,使Python开发人员将他们的项目翻译成C,以及C/C++开发人员希望与Python互操作。
一些最显著的改进来自于Python本身——特别是即将在今年圣诞节发布的Python3.6。
在Python3.6中,一个关键的变化是更快的函数调用性能。正如现成的基准测试所显示的那样,这些变化并不剧烈,但每一点都有帮助。
Cython 0.25在工具包生成的代码中使用了这种新的函数调用方法,因此在Cython模块中进行的任何Python函数调用都将更快地执行。这些改进甚至会出现在用Python3.5模块构建的cython代码中,但是如果您运行的是Python3.6,那么在常规(非cython)代码中也会使用更快的调用方法。
学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者有兴趣学习python的伙伴可以私信回复小编“学习” 领取全套免费python学习资料、视频()装包
此外,cython代码将使用python的字符串格式化函数或cython.inline修饰器加速生成字符串,后者允许将函数作为优化放置在生成的C代码中。
[学习Java从开始概念到高级设计模式——在这12个部分课程中!]
现在还可以使用cython.no_gc指令在代码块中手动关闭垃圾收集。python的垃圾收集器允许您不必担心内存管理的细节,但并不是每个人都希望它在性能敏感的代码中运行;有一个上下文方法将它保存在cython模块中很方便。
Cython 0.25推出了更多与执行实时编译或其他优化的非标准python运行时的交互,它是第一个支持在Dropbox的pyston解释器中使用cython模块的cython版本。python 3.6计划包括扩展以允许第三方JIT,这是微软对该语言的贡献;将来对cython的增加可能会在一些第三方JIT出现后就开始使用该功能。
总结
最后但并非最不重要的是,Cython正在跟踪许多其他开放源码项目,并重新开始其在Github上的开发和问题跟踪。也就是说,如果你有问题,请帮开发人员一个忙,首先通过电子邮件对他们进行ping,而不是打开一个问题——很有可能你的问题有一个快速的解决方案。
图文来源信息世界(翻译):侵删