我有一个python程序,可以在大约1秒内执行。当在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的许多独立执行。
发布于 2013-07-05 00:11:52
不,那是basically not possible。
可以用变通方法得到你想要的结果:例如,把你的程序变成一个本地的“服务器”,它等待请求(通过执行5行脚本完成),并通过执行execute()的工作来为它们服务。这当然不是最优雅的解决方案,但它允许所有的execute()由相同的进程完成,并且(在一段时间后)具有您测量的相同的加速。
https://stackoverflow.com/questions/17464979
复制相似问题