code: def print_stats(self, clsname=None, limit=1.0):
          
          if self.tracker:
              self.tracker.stop_periodic_snapshots()
  
          if not self.sorted:
              self.sort_stats()
  
          _sorted = self.sorted
  
          if clsname:
              _sorted = [to for to in _sorted if clsname in to.classname]
  
          if limit < 1.0:
              limit = max(1, int(len(self.sorted) * limit))
          _sorted = _sorted[:int(limit)]
  
          # Emit per-instance data
          for tobj in _sorted:
              self.print_object(tobj)
docs: Write tracked objects to stdout.  The output can be filtered and
          pruned.  Only objects are printed whose classname contain the substring
          supplied by the `clsname` argument.  The output can be pruned by
          passing a `limit` value.
  
          :param clsname: Only print objects whose classname contain the given
              substring.
          :param limit: If `limit` is a float smaller than one, only the supplied
              percentage of the total tracked data is printed. If `limit` is
              bigger than one, this number of tracked objects are printed.
              Tracked objects are first filtered, and then pruned (if specified).