[英]Diagnosing memory leak from Windows DLL accessed in Python with ctypes
我已經用Python編寫了一個商業軟件的抽象層,該商業軟件具有用於訪問數據庫后端的API。 該API是通過Windows DLL公開的,而我的庫是用Python編寫的。
我的Python包加載了應用程序提供的必需庫,對其進行了初始化,並在頂部創建了兩個Python API。 有一些低級函數可以簡單地包裝API,並使這些函數可從Python調用,還有一些高級接口可以使與本機API的交互更加有效。
我遇到的問題是,運行使用該庫的守護程序時,似乎存在內存泄漏。 (數百KB / s)我使用了多個Python內存分析工具,並分別測試了每個函數,似乎只有一個函數泄漏,但沒有工具報告該函數執行期間內存已丟失。
在Linux上,我將使用Valgrind來確定供應商的庫是否是罪魁禍首,但是該應用程序僅在Windows上運行。 我如何診斷供應商是否有錯,或者這是我訪問其圖書館的方式?
我最終用C語言編寫了一個沒有動態內存分配的程序來測試該庫。 泄漏確實在我正在調用的函數之一中,而不是Python程序中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.