WEB开发网
开发学院软件开发Python 用Psyco让Python运行得像C一样快 阅读

用Psyco让Python运行得像C一样快

 2007-11-12 12:52:53 来源:WEB开发网   
核心提示: 第二种您应当首先考虑的技术是概要分析您的 Python 应用程序,要着眼于将关键部分重写成 C 扩展模块,用Psyco让Python运行得像C一样快(2),使用像 SWIG 这样的扩展封装器(请参阅参考资料),可以创建 C 扩展,Psyco 只可用于 i386 CPU 体系结构,Psyco

第二种您应当首先考虑的技术是概要分析您的 Python 应用程序,要着眼于将关键部分重写成 C 扩展模块。使用像 SWIG 这样的扩展封装器(请参阅参考资料),可以创建 C 扩展,它将程序中最耗时元素作为 C 代码执行。以这种方式扩展 Python 相对简单,但要花些时间学习(并且需要了解 C 的知识)。您经常会发现执行 Python 应用程序所花费的时间绝大部分只是花在了几个函数上,因此,采用这种扩展可能会有很可观的“成果”。

第三种技术建立在第二种技术的基础之上。Greg Ewing 已经创建了名叫 Pyrex 的语言,该语言融合了 Python 和 C。特别地,要使用 Pyrex,需要用类似 Python 的语言编写函数,这种语言将类型声明添加到所选变量中。Pyrex(工具)将“.pyx”文件处理成“.c”扩展名的文件。一旦用 C 编译器进行了编译,就可以将这些 Pyrex(语言)模块导入常规的 Python 应用程序并使用。由于 Pyrex 使用的语法和 Python 本身的语法(包括循环、分支和异常语句、赋值方式、块缩进等等)几乎一样,因此 Pyrex 程序员不需要学会用 C 去编写扩展。而且,与直接用 C 编写扩展相比,Pyrex 允许在同一代码中更无缝地混合 C 级别的变量和 Python 级别的变量(对象)。

最后一种技术就是本文的主题。扩展模块 Psyco 可以插入 Python 解释器的内部,而且可以有选择性地用优化的机器代码去替换部分 Python 的解释型字节码。和所描述的其它技术不同,Psyco 是严格地在 Python 运行时进行操作的。也就是说,Python 源代码是通过 python 命令编译成字节码的,所用的方式和以前完全相同(除了为调用 Psyco 而添加的几个 import 语句和函数调用)。但是当 Python 解释器运行应用程序时,Psyco 会不时地检查,看是否能用一些专门的机器代码去替换常规的 Python 字节码操作。这种专门的编译和 Java 即时编译器所进行的操作非常类似(一般地说,至少是这样),并且是特定于体系结构的。到现在为止,Psyco 只可用于 i386 CPU 体系结构。Psyco 的妙处在于可以使用您一直在编写的 Python 代码(完全一样!),却可以让它运行得更快。

上一页  1 2 3 4 5 6 7  下一页

Tags:Psyco Python 运行

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