使用ctypes

时间:2016-02-19 01:07:14

标签: python dll memory-leaks ctypes dllexport

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

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

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

在Linux上,我会使用Valgrind来确定供应商的库是否是罪魁祸首,但该应用程序仅在Windows上运行。如何判断供应商是否有问题,或者我是否按照我访问其库的方式进行诊断?

1 个答案:

答案 0 :(得分:0)

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