我听说过有关 PyPy 的好消息。特别是我听说它非常快,这让我想知道它是否可用于我的嵌入式项目。
我下载了PyPy-2.6
for my Windows 7
PC,并将内容解压到一个目录中。
我编写了一个小型测试程序来进行基准测试:
import time
def fib(n):
if n == 0 or n == 1:
return 1
return fib(n - 1) + fib(n - 2)
t0 = time.time()
fib(20)
t1 = time.time()
print t1-t0
于是我进入PyPy解压的目录,运行./pypy.exe hello.py
并得到了答案0.120
.
然后我启动了 cygwin 控制台并运行python hello.py
并得到了答案0.01
.
我使用 PyPy 是否错误,或者它只是对某些应用程序更快?
Edit
感谢 Rob 指出 JIT 编译器需要时间预热。
扩展我的示例代码会产生以下结果:
n PyPy Python
20 0.12 0.01
25 0.15 0.06
30 0.34 0.67
35 0.92 7.39
40 10.98 82.9
好像有0.1秒的启动成本什么的,但是之后就更快了。
它仅对于某些应用程序来说更快。引用PyPy doc http://pypy.org/features.html:
您应该注意在两种情况下 PyPy 无法加速您的代码:
Since your program seems to run on the order of 10-2 or 10-1 seconds, the JIT compiler doesn't do you any good.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)