python的igraph:get\u最短路径中的内存泄漏(?)

python的igraph:get\u最短路径中的内存泄漏(?),python,python-2.7,memory-leaks,igraph,Python,Python 2.7,Memory Leaks,Igraph,我有大量不同的图(每个8000多个节点)。在Python2.7的igraph(版本0.7.0)中,我试图对从这些图计算出的最短路径执行一些计算。在循环中,将每个图导入igraph,然后计算最短路径。但是,我注意到python使用的内存在每个循环中都会增加(即使每个循环中都使用了新的图形)。过了一会儿,由于内存被填满,我的程序崩溃了。这是否表示igraph中存在内存泄漏?我怎样才能最好地解决这个问题 这种内存泄漏(?)可以用下面的python代码演示: import igraph as ig im

我有大量不同的图(每个8000多个节点)。在Python2.7的igraph(版本0.7.0)中,我试图对从这些图计算出的最短路径执行一些计算。在循环中,将每个图导入igraph,然后计算最短路径。但是,我注意到python使用的内存在每个循环中都会增加(即使每个循环中都使用了新的图形)。过了一会儿,由于内存被填满,我的程序崩溃了。这是否表示igraph中存在内存泄漏?我怎样才能最好地解决这个问题

这种内存泄漏(?)可以用下面的python代码演示:

import igraph as ig
import psutil, os
# Perform the operation below 100 times.
for run in range(100):
    mygraph = ig.Graph.Full(300)
    # To speed up calculations only the nodes that can be reached in 10 steps are considered for the shortest paths
    ig10neigh = mygraph.neighborhood(order = 10, mode = 'out')
    for v in range(mygraph.vcount()):
        paths = mygraph.get_shortest_paths(v, ig10neigh[v], mode = 'out', output = 'epath')
        #Here some calculations with the paths
    print psutil.Process(os.getpid()).get_memory_info()[0] / float(2 ** 20) # Print the memory use
当我运行上述代码时,我的内存使用从22MB缓慢增加到100MB


谢谢你的帮助

我已经研究过了,事实上,
Graph.get\u shortest\u path()
不幸的是,它有一个内存泄漏,无法轻松解决。我已向解决此问题的开发树提交了一份声明,但不幸的是,如果您希望在自己的版本中使用Python接口(或等待下一个小版本),则必须从头开始重新编译Python接口。

非常感谢您修复此漏洞。不幸的是,我现在不知道如何从头编译igraph,所以我将不得不等待下一个版本。是否可以将我的图形传递给子流程,并在子流程中为范围内的v运行
(mygrapp.vcount()):
循环?这样,每次循环完成时都应该释放内存。