python–pypy如何处理递归?

python–pypy如何处理递归?,第1张

概述我有一个我在python中编写的脚本,它工作正常,但我很好奇,看看我是否可以加快它.它基本上是递归脚本.如果我在普通的python 2.7中运行它,大约需要30秒.当我使用pypy运行相同的东西比我得到以下错误:RuntimeError: maximum recursion depth exceeded 我不确定pypy做什么不同,因为我没有修改脚本.任何人

我有一个我在python中编写的脚本,它工作正常,但我很好奇,看看我是否可以加快它.它基本上是递归脚本.

如果我在普通的python 2.7中运行它,大约需要30秒.当我使用pypy运行相同的东西比我得到以下错误:

RuntimeError: maximum recursion depth exceeded

我不确定pypy做什么不同,因为我没有修改脚本.

任何人都可以帮我理解发生了什么吗?

更新:
好吧我明白了.增加限制有帮助,但我认为我运行了错误的文件.我在bin目录下找到了一个名为py.py的文件并正在使用它.我不确定文件是做什么的,但它比普通的python慢​​.我不得不搜索并发现’pypy-c’似乎现在正常工作.最佳答案正如您在更新中建议的那样,您的问题是您使用的是py.py(用于在cpython之上运行PyPy的解释器). PyPy通常具有比cpython更高的递归限制.您可以使用sys.setrecursionlimit()来增加递归限制,sys.getrecursionlimit()不提供实际的递归限制.

PyPy 1.6.0:>>>> sys.getrecursionlimit()100>>>> def infinite(level=0):....     print level....     return infinite(level+1).... >>> infinite()
总结

以上是内存溢出为你收集整理的python – pypy如何处理递归?全部内容,希望文章能够帮你解决python – pypy如何处理递归?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205798.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)