1

我有一个在大约 1 秒内执行的 python 程序。在 pypy 下执行大约需要 2 秒。但是,如果我将程序从

import sys
from code import execute
if __main__:
    execute(sys.argv)

import sys
from code import execute
if __main__:
    for i in range(100):
        print i
        execute(sys.argv)

你真的可以看到 pypy 是如何“学习”的。第一次运行大约需要 2 秒,然后执行速度越来越快,最终需要大约 0.15 秒。

我可以让pypy“记住”它的优化学习,这样第一次运行就需要0.15。现在看起来我无法从 pypy 中受益,因为我的应用程序将运行许多独立的函数执行。

4

1 回答 1

2

不,这基本上是不可能的

有可能通过变通方法获得您想要的结果:例如,将您的程序变成等待请求(通过执行 5 行脚本完成)的本地“服务器”,并通过执行execute(). 这当然不是最优雅的解决方案,但它可以让所有这些execute()都通过相同的过程完成,并且(一段时间后)具有与您测量的相同的加速。

于 2013-07-04T16:11:52.207 回答