Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ctypes诊断Python中访问的Windows DLL内存泄漏_Python_Dll_Memory Leaks_Ctypes_Dllexport - Fatal编程技术网

使用ctypes诊断Python中访问的Windows DLL内存泄漏

使用ctypes诊断Python中访问的Windows DLL内存泄漏,python,dll,memory-leaks,ctypes,dllexport,Python,Dll,Memory Leaks,Ctypes,Dllexport,我已经用Python为一个商业软件编写了一个抽象层,它有一个用于访问数据库后端的API。API是通过Windows DLL公开的,我的库是用Python编写的 我的Python包加载应用程序提供的必要库,对它们进行初始化,并在顶部创建两个Python API。有一些低级函数可以简单地包装API,并使这些函数可以从Python调用,还有一些高级接口可以使与本机API的交互更加高效 我遇到的问题是,当运行使用库的守护程序时,似乎存在内存泄漏。(几百KB/s)我使用了几个Python内存分析工具,并分

我已经用Python为一个商业软件编写了一个抽象层,它有一个用于访问数据库后端的API。API是通过Windows DLL公开的,我的库是用Python编写的

我的Python包加载应用程序提供的必要库,对它们进行初始化,并在顶部创建两个Python API。有一些低级函数可以简单地包装API,并使这些函数可以从Python调用,还有一些高级接口可以使与本机API的交互更加高效

我遇到的问题是,当运行使用库的守护程序时,似乎存在内存泄漏。(几百KB/s)我使用了几个Python内存分析工具,并分别测试了每个函数,只有一个函数似乎泄漏,但没有工具报告在执行该函数期间内存丢失


在Linux上,我会使用Valgrind来确定供应商的库是否是罪魁祸首,但该应用程序只在Windows上运行。如何诊断供应商是否有故障,或者这是我访问他们库的方式?

我最终用C编写了一个程序,没有动态内存分配来测试库。泄漏确实发生在我调用的一个函数中,而不是Python程序。

我遇到了与您相同的错误。您使用什么python内存分析工具?如果内存可用,我最终编写了一个纯C程序(没有任何动态内存分配)来访问供应商的API并演示泄漏。一旦我证明泄漏在供应商的库中,我就通知了他们,并使用多处理在我的应用程序中编写了一个解决方案。