不同版本Python的循环效率对比

Python3.8和3.13

不同版本的Python,运行效率相去甚远,对于3.8和3.13这两个版本来说,运行下面的程序,分别耗时4.46和0.5秒。其中,3.8是python支持win7的最后一个版本,所以,除非不得不用win7,否则还是用新版Python比较好。

from timeit import timeit

def newList(n):
    L = []
    for i in range(n):
        L.append(i**2)
    return L

timeit(lambda: newList(100_000), number = 100)

Cython

Cython实质上是将Python代码转换为C语言的编译器,但将其视为Python的某个版本也十分合理,其安装过程如下

pip install cython

使用时,先创建以.pyx为后缀的python脚本,然后

# timeTest.pyx

def newList(n):
    L = []
    for i in range(n):
        L.append(i**2)
    return L

然后编写setup文 件,并在该文件中调用Cython中的【cythonize】,示例如下

# setup.py
from setuptools import setup
from Cython.Build import cythonize

setup(
    name='timeTest',
    ext_modules=cythonize("timeTest.pyx"),
    zip_safe=False,)

编写完成后,即可调用并测试了,耗时0.38秒。

from timeit import timeit
from timeTest import newList
timeit(lambda: newList(100_000), number = 100)

Pypy

Pypy由于采用了即时编译技术,所以速度快得有些逆天。下载之后只需将其解压,并加入环境变量,然后用pypy代替python命令就可以使用了。目前其最新版本基于python3.11,速度飞快,同样是上面的那段代码,其运行速度在0.1到0.6之间,运行10次取平均值为0.26秒,速度非常惊人。

总结

不同版本Python在运行for循环时,其耗时如下表所示,可见其速度在python3.11时有一个飞跃。

耗时
3.84.46
3.101.91
3.110.48
3.120.56
3.130.49
cython0.38
pypy0.26

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微小冷

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值