我有一个脚本,它使用循环从一组数组生成数据:
def mapping_func(QDdrive):
start = tfunc()
# this takes some input parameter and builds an array
HCavQD = CavSBHam(QDDet, QDdrive, g_coup, CavDet, N)
# this builds another array
liou = diss(HCavQD, szCavQD, alp, wc, beta, gamma, kappa, N)
# this builds a third and final array
st = steadystate(HCavQD, [liou], method = 'direct')
# from the above array find these numbers
g1QD = (spCavQD * smCavQD * st).tr()
g1Cav = (adCavQD * aCavQD * st).tr()
gcohQD = (spCavQD * st).tr() * (smCavQD * st).tr()
gcohCav = (adCavQD * st).tr() * (aCavQD * st).tr()
end = tfunc()
print 'it took me %r seconds to do that calculation' % (end-start)
#remove variables above
del liou, HCavQD, st
collect()
return [g1QD, gcohQD, g1Cav, gcohCav]
# map above function over the list drives
glist = [mapping_func(d) for d in drives]
在每个循环之后,程序的内存使用量会大幅增加,即使我在所有使用的适当变量上使用了del
。天真地我会想到存储到内存中的唯一东西是函数返回的四个数字。有谁知道为什么这可能是/给出一些问题的洞察力?
我尝试使用for
循环,而不是使用类似结果进行映射。
提前致谢,
Ĵ