memory profiler使用?tracemalloc?Python的memory profiler使用?tracemalloc?
Python 动态分配、引用计数与 GC,内存泄漏或大对象常需定位「谁在占用」。memory profiler 用于统计各函数/行分配量、追踪对象增长,便于发现泄漏与优化大结构。
tracemalloc(标准库,Python 3.4+)可追踪分配来源(文件名、行号)。tracemalloc.start() 开启;tracemalloc.get_traced_memory() 得当前 traced 内存;tracemalloc.get_tracemalloc_memory() 得 tracemalloc 自身开销;tracemalloc.get_object_traceback(obj) 可查某对象分配处。snapshot = tracemalloc.take_snapshot() 后对 snapshot.statistics('lineno') 排序可看分配最多的行。
memory_profiler 包:@profile 装饰器或 mprof run 做逐行内存占用;与 tracemalloc 互补(一个看行级、一个看调用栈/对象)。生产环境 tracemalloc 有开销,可按需开启或采样。
| 返回模块 | 返回总览 |