空间都释放了的,为什么多次调用此函数时,占用内存长的很快,确认了调用的python函数没有内存泄露问题
bool CallPyWaveletConvert(STWaveletConvertInfo& info)
{
PyObject* pArgs = PyTuple_New(1);
PyObject* pList = PyList_New(0);
int iLen = info.m_iInputDataLen;
for (int i = 0; i < iLen; i++)
{
PyObject* pValue = PyFloat_FromDouble(info.m_fInputData[i]);
PyList_Append(pList, pValue);
}
PyTuple_SetItem(pArgs, 0, pList);
PyObject* pRet = PyEval_CallObject(pFuncWaveletConvert, pArgs);
info.m_iOutputDataLen = PyList_Size(pRet);
for(int i=0;i<info.m_iOutputDataLen;++i)
{
PyObject *pNewAge = PyList_GetItem(pRet,i);
PyArg_Parse(pNewAge, "d", &info.m_fOutputData[i]);
}
Py_XDECREF(pList);
Py_XDECREF(pRet);
return true;
}
http://www.cnblogs.com/linxr/archive/2011/07/22/2113843.html
http://blog.csdn.net/ayw215/article/details/7108600
http://blog.csdn.net/artemisrj/article/details/50126445
代码本身好像没问题,但是检查一下 sys.path.append和sys.path.remove是否相匹配,保证添加到Python虚拟机中的路径,用完之后要remove