如何使用Cython为Python编写更快的C扩展

技术如何使用Cython为Python编写更快的C扩展本篇文章为大家展示了如何使用Cython为Python编写更快的C扩展,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在我们这

本文向您展示了如何使用Cython为Python编写更快的C扩展。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。

在这个包含7个PyPI库的系列文章中,我们将学习如何解决常见的Python问题。

Python是最流行的编程语言之一,因为它是开源的,用途广泛(如Web编程、商业应用、游戏、科学编程等)。),并且它有一个充满活力和专注的社区来支持它。这个社区让我们可以在Python包索引(PyPI)中拥有如此庞大多样的软件包,来扩展和改进Python,解决不可避免的问题。

在本系列中,我们将介绍七个PyPI库,它们可以帮助您解决常见的Python问题。第一个是Cython,这是一种简化Python编写c扩展的语言。

00-1010使用Python很有趣,但有时,用Python编写的程序可能会很慢。所有的运行时动态调度都会带来很大的成本:有时比用C或Rust等系统语言编写的等价代码慢10倍。

从成本和可靠性的角度来看,将代码迁移到一种全新的语言可能会花费很多:所有手动重写工作将不可避免地引入错误。我们能两全其美吗?

为了练习优化,我们需要一些慢代码。什么比斐波那契数列的意外指数慢?

def fib(n): IFN 2: return 1 return fib(n-1)fib(n-2)由于对fib的调用将导致两次重新调用,这种效率极低的算法将需要很长时间才能执行。例如,在我的新笔记本电脑上,fib(36)大约需要4.5秒。这4.5秒将成为我们探索Python的Cython扩展所能提供的帮助的基准。

使用Cython的正确方法是将其集成到安装程序中。然而,您可以使用pyximport快速尝试。让我们将fib代码放在fib.pyx中,并使用Cython运行它。

importpyximportPyximport。安装()importfib。fib (36)只使用Cython,没有修改代码,这个算法在我的笔记本上花费的时间减少到2.5秒左右。几乎不需要任何努力,这将运行时间减少了近50%。当然,我得到了一个好结果。

来吧,我们可以让它更快。

cpdefinetfib(intn): IFN 2: return 1 return fib(n-1)fib(n-2)我们将fib中的代码改为cpdef定义的函数,并添加了两种类型的注释:它接受一个整数并返回一个整数。

这变得快得多,只花了大约0.05秒。它是如此之快,以至于我可能开始怀疑我的测量方法包含噪声:以前,这种噪声会在信号中丢失。

下次你的Python代码花太多的CPU时间,可能会让粉丝抓狂。为什么不看看Cython能不能解决这个问题?

以上就是如何使用Cython为Python编写更快的c扩展。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识储备,请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50255.html

(0)

相关推荐

  • 酸枣仁泡水一次用几粒,酸枣仁泡水喝的功效是什么

    技术酸枣仁泡水一次用几粒,酸枣仁泡水喝的功效是什么酸枣仁泡水真的是治疗失眠的“绝招”吗酸枣仁泡水一次用几粒?68岁老中医说出真相……酸枣仁即酸枣的种子,经炮制后可作药用,它含有生物碱、多种氨基酸和金属元素等成分,能起到宁

    生活 2021年10月25日
  • go语言怎么创建websocket服务(golang怎么并发聊天服务器)

    技术GO使用socket和channel怎么实现简单控制台聊天室今天就跟大家聊聊有关GO使用socket和channel怎么实现简单控制台聊天室,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大

    攻略 2021年12月20日
  • 向心力公式,向心力和向心加速度的计算公式

    技术向心力公式,向心力和向心加速度的计算公式向心力:F=Mω²r v为线速度 单位m/s,ω为角速度 单位rad/s,m为物体质量 单位kg,r为物体的运动半径 单位m向心力公式。 向心加速度: a(n)=V²/r a(

    生活 2021年10月20日
  • python虚拟环境怎么用

    技术python虚拟环境怎么用小编给大家分享一下python虚拟环境怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!virtualenvv

    攻略 2021年11月24日
  • Python如何实现我的世界游戏

    技术Python如何实现我的世界游戏这篇文章主要介绍Python如何实现我的世界游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.准备开始之前,你要确保Python和pip已经成功安装在电脑上

    攻略 2021年11月9日
  • pythondate函数用法(pythonannotate函数如何注释点)

    技术Python中missing()函数怎么使用这篇文章主要介绍“Python中missing()函数怎么使用”,在日常操作中,相信很多人在Python中missing()函数怎么使用问题上存在疑惑,小编查阅了各式资料,

    攻略 2021年12月23日