我有一个python脚本,它为不同的参数(Q,K)进行了许多模拟,绘制结果并将其存储到磁盘.
每组参数(Q,K)产生一个200x200x80数据点的3D体积网格数据,这需要~100 MB的数据.然后,该体积网格的一部分逐层绘制,产生~60个图像.
问题是python显然不会在此过程中释放内存.我不确定内存泄漏在哪里,或者规则如何控制python如何决定哪些对象被释放.我也不确定numpy数组或matplotlib图形对象中的内存是否丢失.
代码的相关部分在这里(但是,它不会运行...模拟代码的大部分包括ctypesC++/python接口被省略,因为它太复杂了):
import numpy as np
import matplotlib.pyplot as plt
import ProbeParticle as PP # this is my C++/Python simulation library, take it as blackbox
def relaxedScan3D( xTips, yTips, zTips ):
ntips = len(zTips);
print " zTips : ",zTips
rTips = np.zeros((ntips,3)) # is this array deallocated when exiting the function?
rs = np.zeros((ntips,3)) # and this? …Run Code Online (Sandbox Code Playgroud)