- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我听说过有关 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/
我无法在附加行中显示“真”、“假”、"is"和“否”按钮。 我在这里有一个应用程序:Application 请按照以下步骤使用应用程序: 1。当你打开应用程序时,你会看到一个绿色的加号按钮,点击 在此
我是一名优秀的程序员,十分优秀!