ste*_*ten 5 python memory networkx
如何检查 NetworkX 图使用的内存量?
有一种方法可以检查节点和边的数量,但我找不到用于检查内存使用情况的方法?
在 NetworkX 2.0 及更高版本中,G.edges返回G.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)
Run Code Online (Sandbox Code Playgroud)
您可以通过将边列表的大小和节点列表的大小相加来获得估计值:
sys.getsizeof(G.edge) + sys.getsizeof(G.node)
Run Code Online (Sandbox Code Playgroud)