首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

如何使用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的学习裙【五八八,零九零,九四二】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有很多干货和技术

Cython分析和性能

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180225A0L3DU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券