在我们以前的文章中,曾经讲过计算斐波那契数列的几种方法,其中基于递归的方法是速度最慢的,例如计算第40项的值,需要36秒。如下图所示: 要提高运算速度,根本办法当然是改进算法。不过算法的提高是一个长期积累加上灵机一动的过程。我们今天要讲的,是一个不费脑筋,立竿见影的方法——把 Python 代码编译成 C 语言代码。通过 C 语言的运行效率来加速计算过程。 这个过程看起来很复杂,但实际上你并不需要编写一行 C 语言代码。你需要做的只是使用一个叫做 Cython 的库把 Python 代码编译为 C 语言代码即可。 首先我们来安装 Cython,就像安装普通的第三方库一样: python3 -m pip install cython 安装完成以后,我们单独写计算斐波那契数列的函数:
非常简单的递归写法。然后关键来了,我们要把这个文件保存为 然后我们创建一个 from setuptools import setup 如下图所示: 这个文件的作用,就是调用 Cython 的 接下来,开始编译代码,执行如下命令:
我的 Python 是 Python3.7,所以运行完成以后,会生成一个 还有一个文件叫做 你需要做的,仅仅是直接调用你的函数。我们另外创建一个文件 import time 运行效果如下图所示: 计算斐波那契数列第40项只需要5秒钟,速度妥妥变成 Python 版本的7倍。 使用 Cython,不仅可以提高程序的运行速度,还可以把你的核心代码转换为 关于 Cython 的更多介绍,请阅读它的官方文档[1] 有同学可能会问,当前文件夹下面既然有 这是因为, 参考资料官方文档: https://cython./ END 扫描二维码 |
|
来自: 西北望msm66g9f > 《编程》