在pypy持续学习

时间:2013-07-04 08:05:21

标签: pypy

我有一个大约1s执行的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中受益,因为我的应用程序将执行函数execute的多个独立执行。

1 个答案:

答案 0 :(得分:2)

不,那是basically not possible

可能的是通过变通方法获得您想要的结果:例如,将您的程序转换为等待请求的本地“服务器”(通过执行5行脚本完成),并通过完成工作为其提供服务execute()。它当然不是最优雅的解决方案,但它允许所有execute()通过相同的过程完成,并且(一段时间后)与您测量的速度相同。