我正在使用python的孔雀鱼来查看python程序中的堆用法。我这样做:
h = hpy
hp = h.heap()
print hp
这是产生的输出:
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 35353776 68 function
5 2815 1 2541648 5 37895424 73 type
6 2815 1 2513128 5 40408552 78 dict of type
7 2112 1 2067840 4 42476392 82 dict (no owner)
8 4495 1 1729792 3 44206184 86 unicode
9 4026 1 671376 1 44877560 87 list
<972 more rows. Type e.g. '_.more' to view.>```
How can I print all rows?
答案 0 :(得分:0)
使用python shell
python
然后粘贴您的代码
from guppy import hpy
h = hpy()
h.heap()
然后使用
_.more
来自同一外壳。 您将获得所有行。
答案 1 :(得分:0)
使用all方法显示所有行。
import decimal
from guppy import hpy
d = {
"int": 0,
"float": 0.0,
"dict": dict(),
"set": set(),
"tuple": tuple(),
"list": list(),
"str": "a",
"unicode": u"a",
"decimal": decimal.Decimal(0),
"object": object(),
}
hp = hpy()
heap = hp.heap()
print(heap.all)
答案 2 :(得分:0)
我使用了取自 this model 的代码,通过 the documentation,我可以清楚地了解各种实体是什么。
最终结果是下面打印出整个堆的报告,与您通常一次只能得到10行的报告相同:
h = hpy()
identity_set = h.heap()
stats = identity_set.stat
print()
print("Index Count Size Cumulative Size Object Name")
for row in stats.get_rows():
print("%5d %5d %8d %8d %30s"%(row.index, row.count, row.size, row.cumulsize, row.name))