这是一部分代码,全部代码的话太长了。
def main(rg1,rg2):
global Abins
Abins=[[[] for x in range(50)] for y in range(50)]
for ra in range(rg1,rg2):
for dec in range(180):
print ra, dec
if file_list[ra][dec] == []:
continue
else:
print len(file_list[ra][dec])
for b in file_list[ra][dec]:
for bins_ra in range(-4,5):
for bins_dec in range(-4,5):
for a in file_list[ra+bins_ra][dec+bins_dec]:
if a[4]<b[4]:
calcute(str(a[0]),str(b[0]),a[3],b[3],a[1],b[1],a[2],b[2])
print("start print")
for i in range(FenShu):
for j in range(FenShu):
file_save=open('./Abins_'+str(rg1)+'_'+str(rg2)+'_'+str(i)+'_'+str(j), 'w')
file_save.write(json.dumps(Abins[i][j]))
file_save.close()
del Abins
gc.collect()
for ra in range(80,140):
main(ra,ra+10)
这段代码的意思是,我每做一次 main 这个函数,都会往全局变量 Abins 数组中添加一些数据,由于全部做完之后这个数组会太大(远超过物理内存),所以每一次循环都输出一个文件。
但我的意图是输出完这个文件之后应该就释放了原来的 Abins 专用的内存了,不知道为什么执行的时候还是占用很多很多内存。 是做天文数据处理用的。 多谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.