Module: ActionView::Helpers::BenchmarkHelper

Defined in:
lib/action_view/helpers/benchmark_helper.rb

Instance Method Summary collapse

Instance Method Details

#benchmark(message = "Benchmarking", level = :info) ⇒ Object

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.34523)” to the log.

You may give an optional logger level as the second argument (:debug, :info, :warn, :error). The default is :info.


16
17
18
19
20
21
# File 'lib/action_view/helpers/benchmark_helper.rb', line 16

def benchmark(message = "Benchmarking", level = :info)
  if @logger
    real = Benchmark.realtime { yield }
    @logger.send level, "#{message} (#{'%.5f' % real})"
  end
end