Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

IT行业里面,很多门外汉应该也都知道,就是运行速度最快的是C,运行很慢的是Python。其实这都不是事,Python运行慢,但是代码量非常少。几十行代码就能做到C几百行才能做到的东西。当然小编这里并没有瞧不起C,C乃是语言中的祖母,只是相对来讲打个比方,今天这个小伙子厉害了,他居然运行Python和C一样快,直接惊呆了!咱们接下来看下!

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌


这里还是要推荐下小编的Python学习群:483546416,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2017最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌


如何使用Cython

下面的代码来自Cython文档:

def f(x): return x**2-xdef integrate_f(a, b, N): s = 0 dx = (b-a)/N for i in range(N): s += f(a+i*dx) return s * dx

这是一个例子,一个不完整的函数的实现。作为纯Python代码,速度很慢,因为Python必须在机器本机数字类型和其内部对象类型之间来回转换。

现在考虑相同代码的Cython版本,并强调Cython的增加:

cdef double f(double x): return x**2-xdef integrate_f(double a, double b, int N): cdef int i cdef double s, x, dx s = 0 dx = (b-a)/N for i in range(N): s += f(a+i*dx) return s * dx

如果我们显式声明变量类型,无论是函数参数还是函数体(double,int等)中使用的变量,Cython都会将所有这些转换成C语言。我们也可以使用cdef关键字来定义 尽管这些函数只能被其他的Cython函数调用,而不能被Python脚本调用,但是这些函数主要是用C实现的。

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

Python运行速度居然追上了C语言?那么Python太完美了!简直无敌

Cython分析和性能

可以通过分析代码并亲眼目睹瓶颈在哪里获得最佳性能。Cython为Python的cProfile模块提供钩子,因此可以使用Python自己的分析工具来查看Cython代码的执行情况。无需在工具组之间切换;可以继续所熟悉和喜爱的Python世界中工作。

它有助于记住所有情况下,Cython不是魔术,仍然适用明智的现实世界的表现实践。在Python和Cython之间来回穿梭越少,你的应用运行得越快。


猜你喜欢

转载自blog.csdn.net/qq_41597912/article/details/79372982