循环中大量内存使用

时间:2014-01-30 16:09:42

标签: python loops python-2.7 optimization memory-management

我有一个脚本,它使用循环从一组数组生成数据:

   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循环,而不是使用类似结果进行映射。

提前致谢,

Ĵ

0 个答案:

没有答案