Ric*_*bby 10 python memory stack-overflow
我在mac os 10.7.3上使用python 2.7.2
我在python中进行递归算法,递归级别超过50 000.
我试图将最大递归级别增加到1 000 000但我的python shell仍然在18 000递归级别后退出.
我试图增加可用资源:
import resource
resource.setrlimit(resource.RLIMIT_STACK, (2**29,-1))
sys.setrecursionlimit(10**6)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Traceback (most recent call last):
File "<pyshell#58>", line 1, in <module>
resource.setrlimit(resource.RLIMIT_STACK,(2**29,-1))
ValueError: not allowed to raise maximum limit
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我不能提高最高限额?
谢谢你的建议.
从python文档:
如果指定了无效资源,新软限制超出硬限制,或者进程尝试提高其硬限制(除非进程具有超级用户的有效UID),则引发ValueError.如果底层系统调用失败,也可能引发错误.
由此我猜你尝试新的软限制太大了.您可能需要将算法重写为迭代.Python并不是真的设计用来处理像这样的大规模递归.
| 归档时间: |
|
| 查看次数: |
4730 次 |
| 最近记录: |