我正在Python中实现Kosaraju的强连接组件(SCC)图搜索算法。
这个程序在小数据集上运行得很好,但是当我在一个超大的图(超过800000个节点)上运行它时,它会说“分段错误”。
可能是什么原因?谢谢您!
其他信息:
首先,在超大数据集上运行时出现此错误:
"RuntimeError: maximum recursion depth exceeded in cmp"
然后我使用
sys.setrecursionlimit(50000)
但有“分割错误”
相信我这不是无限循环,它在相对较小的数据上运行正确。程序是否可能耗尽资源?
Tags:
我知道您已经解决了您的问题,但是对于阅读此线程的其他人来说,这里是答案:您必须增加操作系统为python进程分配的堆栈。
方法取决于操作系统。在linux中,可以使用命令
ulimit -s
检查当前值,并使用ulimit -s <new_value>
增加当前值尝试将上一个值加倍,如果不起作用,则继续加倍,直到找到一个确实起作用或内存不足的值为止。
分段故障是一种常见故障,其原因有很多:
当python扩展名(用C编写)试图访问无法访问的内存时,就会发生这种情况。
你可以用以下方法追踪它。
如this answer中的标记所述,使用
gdb
。。在命令提示下相关问题 更多 >
编程相关推荐