blob: ee1f88be82ba0a424fc447e7aa4a3cfc67e753b2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
require 'benchmark'
module ActionView
module Helpers
module BenchmarkHelper
# Measures the execution time of a block in a template and reports the result to the log. Example:
#
# <% benchmark "Notes section" do %>
# <%= expensive_notes_operation %>
# <% end %>
#
# Will add something like "Notes section (0.345234)" to the log.
def benchmark(message = "Benchmarking", &block)
bm = Benchmark.measure do
block.call
end
@logger.info("#{message} (#{bm.real})")
end
end
end
end
|