method
profile
v3.0.9 -
Show latest stable
- Class:
RequireProfiler
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