最近我有一个用C写的项目,用Python扩展, 我在while循环中调用Python,结果是内存增长从未停止。在
代码如下:
main
{
while True {
if( SUCCESS != PyInit())
{
return -1;
}
PyDone();
usleep(1000);
}
}
int PyInit(void)
{
Py_Initialize();
if(!Py_IsInitialized())
{
printf("PyInit: Python Init fail!\n");
return FAILURE;
}
else
{
printf( "Python Init succ!\n");
return SUCCESS;
}
}
void PyDone(void)
{
Py_Finalize();
}
最后我的英语很差,希望我能把这个问题描述清楚。在
如果您的代码与此类似,并且似乎存在内存泄漏,那么python实现就有问题,因为PyFinalize应该“释放python解释器分配的所有内存”。关于PyFinalize,python站点声明,“python解释器分配的少量内存可能无法释放(如果发现泄漏,请报告它)。”,通过python bug tracker搜索leak表明尚未报告此问题,因此我建议向他们的bugtracker报告此错误。在
相关问题 更多 >
编程相关推荐