1

我有一个创建多个对象的 python(3.6.5) 包。根据我在任务调度程序中看到的内容以及如果内存每超过 1GB 时我制定的救助标准,主进程似乎存在内存泄漏。检测内存膨胀的代码如下:

        from win32con import PROCESS_QUERY_INFORMATION, PROCESS_VM_READ
        from win32api import OpenProcess
        from win32process import GetProcessMemoryInfo
        handle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, os.getpid())
        process_memory = int(GetProcessMemoryInfo(handle)['WorkingSetSize'])

我尝试使用 tracemalloc 来检测内存膨胀,方法是在达到此救助标准的点放置一个断点,并且 tracemalloc 检测到的总内存使用量刚刚超过 300MB。如果我不创建这些对象,则不会观察到膨胀(通过注释掉创建对象的代码进行测试)。对于剩余的 700MB 内存使用情况,调试此内存泄漏的最佳方法是什么?

谢谢

4

0 回答 0