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