如何估计网络图形内存使用



如何检查网络图所使用的内存量?

有一种方法可以检查节点和边的数量,但是我找不到一个用于内存使用的方法?

在NetworkX 2.0及以后,G.edgesG.nodes返回迭代器,因此,将其大小直接工作不起作用,它只会为您提供迭代器对象的大小。您需要在这些对象上迭代并获取每个边缘的大小和节点,然后总和这些对象以估计图。

使用的内存。
import networkx as nx
import sys
G = nx.Graph()
# populate the graph with nodes and edges
edge_mem = sum([sys.getsizeof(e) for e in G.edges])
node_mem = sum([sys.getsizeof(n) for n in G.nodes])
print("Edge memory:", edge_mem)
print("Node memory:", node_mem)
print("Total memory:", edge_mem + node_mem)

您可以通过添加边缘列表的大小和节点列表的大小来获得估计:

 sys.getsizeof(G.edge) + sys.getsizeof(G.node)

最新更新