首页 > 解决方案 > 如何使用 python 的 guppy 打印所有行

问题描述

我正在使用 python 的 guppy 来查看 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.>

如何打印所有行?

标签: pythonheap-memoryguppy

解决方案


使用用于显示所有行的所有方法。

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)

推荐阅读