python计算密集型提速_利用Cython加速计算密集型python任务

本文介绍了如何使用Cython提升Python计算密集型任务的性能。计算密集型任务主要消耗CPU资源,Python效率较低。Cython允许Python脚本支持C语言扩展,将.pyx脚本转换为C代码,从而提高性能。通过Cython优化代码类型定义,将300万以内的素数计算从18.07秒优化到1.22秒,速度提升约15倍。
摘要由CSDN通过智能技术生成

何为计算密集型任务

下面贴上网上找到的描述计算密集型任务的特点是要进行大量的计算,消耗CPU资源,比如计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。

计算密集型任务由于主要消耗CPU资源,因此,代码运行效率至关重要。Python这样的脚本语言运行效率很低,完全不适合计算密集型任务。对于计算密集型任务,最好用C语言编写。

简单总结一下就是,计算密集型任务吃CPU。Python是脚本语言效率低,做计算密集型任务很弱。可以用mutliprocess的方式在一定程度内提升运行效率。但还是不如C。

C语言是编译型语言,需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。而Python是解释型语言,解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。但是每次运行的时候都要解释一遍,性能上不如编译型语言。

所以拿Python来和C比性能可以说是拿鸡蛋碰石头。但是由于Python语言的简洁性、易读性以及可扩展性,越来越多的领域如Web开发、科学计算和统计、人工智能等等等都可以见到Python的身影。那么假如由于某些原因而不得不选择使用Python作为计算密集型任务的开发语言时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值