我的代码连续分配内存(每秒约12kb)。运行8小时,它的内存很多!!
因此我想跟踪我的python代码分配内存的时刻/代码行。
您可以使用以下处理代码行执行以下操作:
python -m trace --count -C ./tmp code.py
这会生成一个视图,您可以在其中查看此行的执行频率。它看起来像:
code.cover
1: import sys
1: import os
1534: while 1:
1534: print "foo"
我需要这个用于内存分配。如果可能的话
1245 B import sys
893 B import os
17.46 KB import somecode
答案 0 :(得分:3)
此处已经回答了这个问题:Python memory profiler
也许这个可以帮到你:http://pypi.python.org/pypi/memory_profiler
从文档中,执行将选项-m memory_profiler
传递给python解释器的代码,以加载memory_profiler模块并打印到stdout逐行分析。如果文件名是example.py,则会导致:
$ python -m memory_profiler example.py
输出将遵循:
Line # Mem usage Increment Line Contents
==============================================
3 @profile
4 5.97 MB 0.00 MB def my_func():
5 13.61 MB 7.64 MB a = [1] * (10 ** 6)
6 166.20 MB 152.59 MB b = [2] * (2 * 10 ** 7)
7 13.61 MB -152.59 MB del b
8 13.61 MB 0.00 MB return a