我正在使用 PyPy 进行一些斐波那契计算,首先我从较大的数字开始,PyPy 更快一点,但是对于较小的数字,它提供几乎相同的性能,并且某些情况下普通解释器比 pypy 快得多,有什么具体原因吗?
from time import time
def fibonacci(n):
a, b = 0, 1
for i in range(0, n):
a, b = b, a + b
return a
start = time()
result = fibonacci(5000)
end = time()
print(end-start)
数量很少,比如 5000Python实际上是faster than PyPy;
Python: 0.0006256103515625
PyPy: 0.0016071796417236328
当涉及到更大一点的数字(例如 1.000.000)时,PyPy比Python
PyPy: 8.567905902862549
Python: 9.79963207244873
但当涉及到不同的计算时,例如:
def sum_in_range(a,b):
c = 0
for i in range(1, a):
for j in range(1, b):
c += i+j
return c
start = time()
result = sum_in_range(100000,100000)
end = time()
print(end-start)
PyPy is 60比Python
PyPy: 0.1999509334564209
Python: 12.051937103271484