我正在分析我的扭曲服务器.它使用的内存比我预期的多得多.它的内存使用量会随着时间的推
ps -o pid,rss,vsz,sz,size,command
PID RSS VSZ SZ SZ COMMAND
7697 70856 102176 25544 88320 twistd -y broadcast.tac
Run Code Online (Sandbox Code Playgroud)
如您所见,它的成本为102176 KB,即99.78125 MB.我使用扭曲的沙井中的孔雀鱼来观察内存使用情况.
>>> hp.heap()
Partition of a set of 120537 objects. Total size = 10096636 bytes.
Index Count % Size % Cumulative % Kind (class / dict of class)
0 61145 51 5309736 53 5309736 53 str
1 27139 23 1031596 10 6341332 63 tuple
2 2138 2 541328 5 6882660 68 dict (no owner)
3 7190 …
Run Code Online (Sandbox Code Playgroud) tl/dr:如何使用 Guppy 获取 python 程序的当前内存使用情况?有简单的命令吗?
我正在尝试使用 guppy 在 python 程序中跟踪内存使用情况。这是我第一次使用 guppy,所以我不太确定它的行为方式。我想要的是能够在模拟中随着“时间”的进展绘制总使用量。这是我可以做的一些基本代码:
from guppy import hpy
import networkx as nx
h = hpy()
L=[1,2,3]
h.heap()
> Partition of a set of 89849 objects. Total size = 12530016 bytes.
> Index Count % Size % Cumulative % Kind (class / dict of class)
> 0 40337 45 3638400 29 3638400 29 str
> 1 21681 24 1874216 15 5512616 44 tuple
> 2 1435 2 1262344 10 6774960 54 dict (no owner) …
Run Code Online (Sandbox Code Playgroud) 我刚刚安装了孔雀鱼0.1.10.然后输入Ipython 2.1.0
from guppy import hpy
hp = hpy()
Run Code Online (Sandbox Code Playgroud)
使控制台崩溃,即Windows告诉我,python.exe刚刚崩溃.有没有解决方法?还是一个堆积的替代品?
我能够生成* .dat文件:
vikas@server:~/memory_profiler-0.36$ ./mprof run --python test_sl.py
vikas@server:~/memory_profiler-0.36$ ls *.dat
mprofile_20151001035123.dat
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试绘制图形时,它说“ matplotlib需要绘制”
vikas@server:~/memory_profiler-0.36$ ./mprof plot --output=plot.png
matplotlib is needed for plotting.
Run Code Online (Sandbox Code Playgroud)
我有想念吗?
我正在分析的函数是其中的run():file_to_be_profiled.py
#!/usr/bin/python
import time
import os, sys, commands
from memory_profiler import profile
from guppy import hpy
@profile
def run():
d = {}
l = []
hp = hpy()
before = hp.heap()
d["k1"] = 'val1'
d["k2"] = 10
count = 0
while (count < 9):
l.append(count)
print 'The count is:', count
count = count + 1
print "Good …
Run Code Online (Sandbox Code Playgroud) 我正在使用 python 的 guppy 来查看 python 程序中的堆使用情况。我愿意:
h = hpy
hp = h.heap()
print hp
Run Code Online (Sandbox Code Playgroud)
这是产生的输出:
Partition of a set of 339777 objects. Total size = 51680288 bytes.
Index Count % Size % Cumulative % Kind (class / dict of class)
0 137974 41 17732032 34 17732032 34 str
1 93077 27 8342072 16 26074104 50 tuple
2 992 0 3428864 7 29502968 57 dict of module
3 23606 7 3021568 6 32524536 63 types.CodeType
4 23577 7 2829240 5 …
Run Code Online (Sandbox Code Playgroud)