最近我有一個項目由C編寫,擴展Python中, 我在while循環中調用Python,結果是內存增長永遠不會停止。c-extension 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();
}
,最後我的英語很差,希望我已經清楚地說明了這個問題。
嘗試使用valgrind運行。另外,只要CPython的垃圾收集器在最後一次嘗試使用它時關心內存,它就會佔用內存。 – 2013-03-26 02:36:39
@Joran Beasley我會嘗試你說的。 – 2013-03-26 02:39:36
@Eric Urban在這種情況下,我們該怎麼辦CPython呢〜 – 2013-03-26 02:40:07