method

profile

profile(file)
private

No documentation available.

# File tools/profile, line 25
    def profile(file)
      stats << [file, depth]
      self.depth += 1
      heap_before, objects_before = GC.allocated_size, ObjectSpace.allocated_objects
      result = nil
      elapsed = Benchmark.realtime { result = yield }
      heap_after, objects_after = GC.allocated_size, ObjectSpace.allocated_objects
      self.depth -= 1
      stats.pop if stats.last.first == file
      stats << [file, depth, elapsed, heap_after - heap_before, objects_after - objects_before] if result
      result
    end