打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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实现的。

Cython分析和性能

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

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

谢谢阅读,元方你怎么看?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Cython学习
Python、C、C 扩展、Cython 差异对比
Cython应用手记
C 一级的构造函数和析构函数
你试过C语言和Python一起混合编程吗?两者相加不是已经无敌了!
快 100 倍,Python 为自然语言处理加速度!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服