Nwlis
Nwlis

Reputation: 73

How can I print all rows using python's guppy

I am using python's guppy in order to see heap usage in a python program. I do:

h = hpy
hp = h.heap()
print hp

and this is the produced output:

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?

Upvotes: 5

Views: 1325

Answers (2)

MatthewPetersIBM
MatthewPetersIBM

Reputation: 1

I used code taken from this model and with the documentation I could get clear in my own mind what the various entities are.

The end result is that the following prints out the report for the whole of the heap, the same sort of report that you only get 10 lines at a time of normally:

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))

Upvotes: 0

Shyam Bhagat
Shyam Bhagat

Reputation: 789

Use all Method which is used to show all lines.

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)

Upvotes: 3

Related Questions