pympler和objgraph都提供了生成内存快照的功能,你可以使用memory_tracker.create_summary()
方法来创建一个内存快照,使用memory_tracker.print_diff()
方法来比较两个内存快照的差异,下面是一个代码示例:
from pympler import tracker
memory_tracker = tracker.SummaryTracker()
first_snapshot = memory_tracker.create_summary()
# 执行一些操作
memory_tracker.print_diff(summary1=first_snapshot)
在上面的代码中,memory_tracker.create_summary()
方法会创建一个内存快照,并返回一个 Summary 对象。然后,你可以对程序进行一些操作,比如分配一些内存。最后,再次调用memory_tracker.create_summary()
方法来创建第二个内存快照,并使用memory_tracker.print_diff()
方法来比较两个内存快照的差异。
需要注意的是,内存快照是在程序运行时创建的,因此它们可能会受到程序状态的影响。如果你想在程序结束后分析内存使用情况,可以使用 tracemalloc 模块来记录程序的内存分配情况,并在程序结束后查看跟踪文件。