Python-C+中的内存泄漏+;接口? 我有一个Python C++接口的C++代码,需要用Python列表重复调用它作为输入。我发现虚拟进程也会导致内存泄漏,如下所示:
在python中:Python-C+中的内存泄漏+;接口? 我有一个Python C++接口的C++代码,需要用Python列表重复调用它作为输入。我发现虚拟进程也会导致内存泄漏,如下所示:,c++,python,memory-leaks,C++,Python,Memory Leaks,在python中: a = [1.0]*1000 for c in range(1000): dummy(a, 1) 在C++中: static PyObject* dummy(PyObject* self, PyObject* args) { Py_RETURN_NONE; } 我错过了这里的任何东西,所以它会导致内存泄漏吗?不,这很好,传递给c方法的对象只是借用的,也就是说,在返回之前不必减少对象的引用数(事实上,这是一个非常糟糕的错误) 例如,请参见本部分: 请注意,提
a = [1.0]*1000
for c in range(1000):
dummy(a, 1)
在C++中:
static PyObject* dummy(PyObject* self, PyObject* args) {
Py_RETURN_NONE;
}
我错过了这里的任何东西,所以它会导致内存泄漏吗?不,这很好,传递给c方法的对象只是借用的,也就是说,在返回之前不必减少对象的引用数(事实上,这是一个非常糟糕的错误) 例如,请参见本部分: 请注意,提供给 呼叫者是借来的参考;不要减少它们的引用 伯爵
你怎么确定你有内存泄漏?这很可能是你的问题。我不这么认为。。。你确定这是内存泄漏,而不仅仅是GC还没有运行吗?事实上,我试图定期向代码中添加手动GC,但内存仍然会很快膨胀。我看不到这里的链接。我错过什么了吗?