您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么Python 3比Python 2慢很多?

为什么Python 3比Python 2慢很多?

不同之处在于int类型的实现。蟒3.X使用任意大小的整数类型(long在2.X)排他地,而在Python x为值高达sys.maxint更简单的int类型被用于使用一个简单的Clong引擎盖下。

将循环限制为 long 整数后,Python 3.x会更快:

>>> from timeit import timeit
>>> MAX_NUM = 3*10**3
>>> def bar():
...     i = MAX_NUM + sys.maxsize
...     while i > sys.maxsize:
...         i -= 1
...

Python 2:

>>> timeit(bar, number=10000)
5.704327821731567

Python 3:

>>> timeit(bar, number=10000)
3.7299320790334605

我用sys.maxsize作为sys.maxint从Python 3的下降,但整数值基本相同。

因此,Python 2中的速度差异仅限于第一个(2 31)-32位系统为1整数。

由于您无法在Python 2上使用该long类型xrange(),因此我没有对该函数进行比较。

python 2022/1/1 18:26:12 有190人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶