instance method benchmark

Ruby on Rails 2.2.3

Since v2.2.3 Last seen in v2.3.18

Available in: v2.2.3 v2.3.18

Signature

benchmark(message = "Benchmarking", level = :info)

Allows you to measure the execution time of a block in a template and records the result to the log. Wrap this block around expensive operations or possible bottlenecks to get a time reading for the operation. For example, let’s say you thought your file processing method was taking too long; you could wrap it in a benchmark block.

<% benchmark "Process data files" do %>
  <%= expensive_files_operation %>
<% end %>

That would add something like “Process data files (345.2ms)” to the log, which you can then use to compare timings when optimizing your code.

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

Parameters

message opt = "Benchmarking"
level opt = :info
Source
# File actionpack/lib/action_view/helpers/benchmark_helper.rb, line 23
      def benchmark(message = "Benchmarking", level = :info)
        if controller.logger
          seconds = Benchmark.realtime { yield }
          controller.logger.send(level, "#{message} (#{'%.1f' % (seconds * 1000)}ms)")
        else
          yield
        end
      end

Defined in actionpack/lib/action_view/helpers/benchmark_helper.rb line 23 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionView::Helpers::BenchmarkHelper

Type at least 2 characters to search.

↑↓ navigate · open · esc close