docs: def _profile(self, frame, event, arg):
          """The callback function to register by :func:`sys.setprofile`."""
          # c = event.startswith('c_')
          if event.startswith('c_'):
              return
          time1 = self.timer()
          frames = self.frame_stack(frame)
          if frames:
              frames.pop()
          parent_stats = self.stats
          for f in frames:
              parent_stats = parent_stats.ensure_child(f.f_code, void)
          code = frame.f_code
          frame_key = id(frame)
          # if c:
          #     event = event[2:]
          #     code = mock_code(arg.__name__)
          #     frame_key = id(arg)
          # record
          time2 = self.timer()
          self.overhead += time2 - time1
          if event == 'call':
              time = time2 - self.overhead
              self.record_entering(time, code, frame_key, parent_stats)
          elif event == 'return':
              time = time1 - self.overhead
              self.record_leaving(time, code, frame_key, parent_stats)
          time3 = self.timer()
          self.overhead += time3 - time2