问题
设计一个程序,需要统计消耗时间和内存资源占用(Max)
memory_profiler或者(c)Profiler家族对内存细节使用都比较详细
但在这里,我只想了解内存最大的占用
解决
tracemalloc是用来分析Python程序内存分配的工具,是一个集成到内置库的工具。
tracemalloc.
get_traced_memory
()
获取由跟踪的内存块的当前大小和峰值大小 tracemalloc
作为元组的模块: (current: int, peak: int)
.
import tracemalloc
if __name__ == '__main__':
tracemalloc.start(25) # 默认25个片段,这个本质还是多次采样
cs.run() # 这是我自己定义的对象成员函数
# 记录所有跟踪内存块的当前大小和峰值大小
size, peak = tracemalloc.get_traced_memory()
# 一个输出到控制台中,一个输出到文件
print('memory blocks:{:>10.4f} KiB'.format(peak / 1024))
print('memory blocks:{:>10.4