numpy array中的内存泄露(memroy leak in numpy1.7.0 array)
这个标题其实还有些不合适,因为目前还没有验证出这真的是否是个bug,在google上也没有发现这类问题的结果,但是在实际的使用中..经过多次的观察内存可以确定的确如此,有的人说这可能是numpy自己的内存分配,但是python不能回收这些内存。详情见:http://longriver.me/?p=96
1
2
3
|
for user,data in itertools.groupby(sys.stdin,operator.getitem( 0 )) for d in data: pt = numpy.array(d[ 1 :],dtype = float ) |
内存一直在增加,内存的增加和读入的数据行数,虽然不是正比,但是正相关。但是将代码换成了,
1
|
pt = numpy.fromiter(d[ 1 :],dtype = float ) |
之后,问题解决。内存不再增加,初步估计,numpy.array 函数会一直保留着d的引用,会有些cach机制吧。将来还得好好研究。