WEB开发网
开发学院软件开发Python Pyrex 扩展并加速 Python 应用程序 阅读

Pyrex 扩展并加速 Python 应用程序

 2007-03-29 12:21:49 来源:WEB开发网   
核心提示:作者在使用 Pyrex 加速自己的纯 Python 版本的 hashcash,Pyrex 是一种用来编写 Python 扩展模块的语言,Pyrex 扩展并加速 Python 应用程序,可以代替 C 语言来完成这项工作,作者还对使用 Pyrex 编写代码(通常是在大型的 Python 应用程序中使用)和使用 Psyco

作者在使用 Pyrex 加速自己的纯 Python 版本的 hashcash,Pyrex 是一种用来编写 Python 扩展模块的语言,可以代替 C 语言来完成这项工作。作者还对使用 Pyrex 编写代码(通常是在大型的 Python 应用程序中使用)和使用 Psyco 编译器加速 Python 应用程序进行了对比,后者作者已经在 developerWorks 撰写文章进行了介绍。

Pyrex 是一种专门设计用来编写 Python 扩展模块的语言。根据 Pyrex Web 站点的介绍,“它被设计用来在友好易用的高级 Python 世界和凌乱的低级 C 世界之间搭建一个桥梁。”虽然几乎所有的 Python 代码都可以作为有效的 Pyrex 代码使用,但是您可以在 Pyrex 代码中添加可选的静态类型声明,从而使得这些声明过的对象以 C 语言的速度运行。

加速 Python

从某种意义上来说,Pyrex 只是不断发展的 Python 类语言系列的一个部分:Jython、IronPython、Prothon、Boo、Vyper(现在没人用了)、Stackless Python(以一种方式)或 Parrot runtime(以另外一种方式)。按照语言的术语来说,Pyrex 本质上是在 Python 中添加了类型声明。它的另外几个变化没有这么重要(不过对 for 循环的扩展很漂亮)。

然而,您真正希望使用 Pyrex 的原因是它编写的模块比纯 Python 运行得更快,可能会快很多。

实际上,Pyrex 会从 Pyrex 代码生成一个 C 程序。中间文件 module.c 依然可以用于手工处理。然而对于“普通的” Pyrex 用户来说,没有什么理由需要修改所生成的 C 模块。Pyrex 本身可以让您访问那些对速度至关重要的 C 级代码,而节省了编写内存分配、回收、指针运算、函数原型等的工作。Pyrex 还可以无缝地处理 Python 级对象的所有接口;通常它都是通过在必要的地方将变量声明为 PyObject 结构并使用 Python C-API 调用进行内存处理和类型转换而实现的。

1 2 3 4 5 6  下一页

Tags:Pyrex 扩展 加速

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接