不同之处在于
int类型的实现。蟒3.X使用任意大小的整数类型(
long在2.X)排他地,而在Python
x为值高达
sys.maxint更简单的
int类型被用于使用一个简单的C
long引擎盖下。
将循环限制为 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 63)-64位为1整数,(2 31)-32位系统为1整数。
由于您无法在Python 2上使用该
long类型
xrange(),因此我没有对该函数进行比较。


![为什么Python 3比Python 2慢很多?[重复] 为什么Python 3比Python 2慢很多?[重复]](http://www.mshxw.com/aiimages/31/611959.png)
