我开发了一个python工具,可以与各种功率仿真软件进行交互,以执行分析研究。经过大量测试后,似乎该工具的结构在运行研究时导致内存泄漏。看起来奇怪的是,课程所处的位置会影响内存的管理方式。这可能吗?
有一个特定的函数嵌入在一个通过一系列总体类访问的类中。内存泄漏仅发生在一个特定软件上。如果我把这个类靠近顶部,即没有深入嵌入那么多类,那么内存泄漏就会消失。或者,如果我跳过与具有此特定功能的电源仿真软件交互,它就会消失,所以我知道这个软件,这个功能和工具的结构是特别的。每次调用此函数时内存使用量都会增加。
我不熟悉跟踪内存泄漏,但尝试在控制正在执行的研究数量的最高级脚本上运行gc.collect(),并且在函数调用之后立即运行,并且在两种情况下都返回0。 Pympler表示在内存中没有特定于Python工具的类。有没有办法可以更好地定位此函数的内存使用情况?
干杯!
我还应该注意,导致内存泄漏的函数不是我自己的代码。它是由功率仿真软件提供商开发的用于访问的类的一部分。