Ejemplo n.º 1
0
 def track_size(self, ts: float, sizer: asizeof.Asizer) -> None:
     """
     Store timestamp and current size for later evaluation.
     The 'sizer' is a stateful sizing facility that excludes other tracked
     objects.
     """
     obj = self.ref()
     self.snapshots.append(
         (ts, sizer.asized(obj, detail=self._resolution_level)))
     if obj is not None:
         self.repr = safe_repr(obj, clip=128)
Ejemplo n.º 2
0
def get_obj_referents(oid):
    referents = {}
    obj = get_obj(oid)
    if type(obj) is dict:
        named_objects = asizeof.named_refs(obj)
    else:
        refs = asizeof._getreferents(obj)
        named_objects = [(repr(type(x)), x) for x in refs]
    for name, o in named_objects:
        referents[name] = (get_ref(o), type(o).__name__, safe_repr(o, clip=48), asizeof.asizeof(o))
    return dict(referents=referents)
Ejemplo n.º 3
0
 def track_size(self, ts, sizer):
     """
     Store timestamp and current size for later evaluation.
     The 'sizer' is a stateful sizing facility that excludes other tracked
     objects.
     """
     obj = self.ref()
     self.snapshots.append(
         (ts, sizer.asized(obj, detail=self._resolution_level))
     )
     if obj is not None:
         self.repr = safe_repr(obj, clip=128)
Ejemplo n.º 4
0
def get_obj_referents(oid):
    referents = {}
    obj = get_obj(oid)
    if type(obj) is dict:
        named_objects = asizeof.named_refs(obj)
    else:
        refs = asizeof._getreferents(obj)
        named_objects = [(repr(type(x)), x) for x in refs]
    for name, o in named_objects:
        referents[name] = (get_ref(o), type(o).__name__, safe_repr(o, clip=48),
                           asizeof.asizeof(o))
    return dict(referents=referents)
Ejemplo n.º 5
0
 def _annotate_objects(self):
     """
     Extract meta-data describing the stored objects.
     """
     self.metadata = []
     sizer = Asizer()
     sizes = sizer.asizesof(*self.objects)
     self.total_size = sizer.total
     for obj, sz in zip(self.objects, sizes):
         md = _MetaObject()
         md.size = sz
         md.id = id(obj)
         try:
             md.type = obj.__class__.__name__
         except (AttributeError, ReferenceError):  # pragma: no cover
             md.type = type(obj).__name__
         md.str = safe_repr(obj, clip=128)
         self.metadata.append(md)
Ejemplo n.º 6
0
 def _annotate_objects(self):
     """
     Extract meta-data describing the stored objects.
     """
     self.metadata = []
     sizer = Asizer()
     sizes = sizer.asizesof(*self.objects)
     self.total_size = sizer.total
     for obj, sz in zip(self.objects, sizes):
         md = _MetaObject()
         md.size = sz
         md.id = id(obj)
         try:
             md.type = obj.__class__.__name__
         except (AttributeError, ReferenceError):  # pragma: no cover
             md.type = type(obj).__name__
         md.str = safe_repr(obj, clip=128)
         self.metadata.append(md)