gpt4 book ai didi

python - 我使用 PyPy 错了吗?它比标准 Python 慢 10 倍

转载 作者:太空宇宙 更新时间:2023-11-03 14:17:29 24 4
gpt4 key购买 nike

我听说过有关 PyPy 的好消息。特别是我听说它非常快,这让我想知道它是否可用于我拥有的嵌入式项目。

我为我的 Windows 7 PC 下载了 PyPy-2.6,并将内容解压缩到一个目录中。

我编写了一个小测试程序来进行基准测试:


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 或者它只是对某些应用程序更快?

编辑

感谢 Rob 指出 JIT 编译器需要时间预热。

扩展我的示例代码会产生以下结果:

n     PyPy    Python20    0.12     0.0125    0.15     0.0630    0.34     0.6735    0.92     7.3940    10.98    82.9

好像有0.1秒的启动成本什么的,但是之后就快了。

最佳答案

它只对某些应用程序更快。引用 PyPy doc :

There are two cases that you should be aware where PyPy will not be able to speed up your code:

  • Short-running processes: if it doesn't run for at least a few seconds, then the JIT compiler won't have enough time to warm up.

  • If all the time is spent in run-time libraries (i.e. in C functions), and not actually running Python code, the JIT compiler will not help.

由于您的程序似乎以 10-2 或 10-1 秒的顺序运行, JIT 编译器对你没有任何好处。

关于python - 我使用 PyPy 错了吗?它比标准 Python 慢 10 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com