代码运行时的内存问题(Python,Networkx)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了代码运行时的内存问题(Python,Networkx),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2606字,纯文字阅读大概需要4分钟。
内容图文
![代码运行时的内存问题(Python,Networkx)](/upload/InfoBanner/zyjiaocheng/962/c3ad72c5aaf84f229bb5dc0d288f11d8.jpg)
我制作了一个生成带有379613734边的图的代码.
但由于内存的原因,代码无法完成.当它通过6200万行时,它占用了大约97%的服务器内存.所以我杀了它.
你有什么想法解决这个问题吗?
我的代码是这样的:
import os, sys
import time
import networkx as nx
G = nx.Graph()
ptime = time.time()
j = 1
for line in open("./US_Health_Links.txt", 'r'):
#for line in open("./test_network.txt", 'r'):
follower = line.strip().split()[0]
followee = line.strip().split()[1]
G.add_edge(follower, followee)
if j%1000000 == 0:
print j*1.0/1000000, "million lines done", time.time() - ptime
ptime = time.time()
j += 1
DG = G.to_directed()
# P = nx.path_graph(DG)
Nn_G = G.number_of_nodes()
N_CC = nx.number_connected_components(G)
LCC = nx.connected_component_subgraphs(G)[0]
n_LCC = LCC.nodes()
Nn_LCC = LCC.number_of_nodes()
inDegree = DG.in_degree()
outDegree = DG.out_degree()
Density = nx.density(G)
# Diameter = nx.diameter(G)
# Centrality = nx.betweenness_centrality(PDG, normalized=True, weighted_edges=False)
# Clustering = nx.average_clustering(G)
print "number of nodes in G\t" + str(Nn_G) + '\n' + "number of CC in G\t" + str(N_CC) + '\n' + "number of nodes in LCC\t" + str(Nn_LCC) + '\n' + "Density of G\t" + str(Density) + '\n'
# sys.exit()
# j += 1
边数据是这样的:
1000 1001
1000245 1020191
1000 10267352
1000653 10957902
1000 11039092
1000 1118691
10346 11882
1000 1228281
1000 1247041
1000 12965332
121340 13027572
1000 13075072
1000 13183162
1000 13250162
1214 13326292
1000 13452672
1000 13844892
1000 14061830
12340 1406481
1000 14134703
1000 14216951
1000 14254402
12134 14258044
1000 14270791
1000 14278978
12134 14313332
1000 14392970
1000 14441172
1000 14497568
1000 14502775
1000 14595635
1000 14620544
1000 14632615
10234 14680596
1000 14956164
10230 14998341
112000 15132211
1000 15145450
100 15285998
1000 15288974
1000 15300187
1000 1532061
1000 15326300
最后,有没有人有经验来分析Twitter链接数据?我很难采用有向图并计算平均/中位数的indegree和outdegree节点.任何帮助或想法?
解决方法:
首先,您应该考虑是否可以添加更多RAM.通过基于您拥有的数据进行计算或通过读取各种大小的数据的子样本来衡量内存使用情况,以衡量内存使用情况.几GB RAM的适度成本可以为您节省大量时间和麻烦.
其次,考虑是否需要实际构建整个图.例如,您可以通过迭代文件并计算来确定顶点的数量及其度数 – 您只需要在内存中一次保留一行,加上计数,这将比图表小很多.知道度数,您可以在找到最大连通分量时省略图中第一级的任何顶点,然后在之后校正省略的节点.您正在进行数据分析,而不是实现一些通用算法:学习有关数据的简单信息以实现更复杂的分析.
内容总结
以上是互联网集市为您收集整理的代码运行时的内存问题(Python,Networkx)全部内容,希望文章能够帮你解决代码运行时的内存问题(Python,Networkx)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。