--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: ""
comment: 
- !ruby/struct:SM::Flow::P 
  body: 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.
- !ruby/struct:SM::Flow::VERB 
  body: " &lt;% benchmark &quot;Process data files&quot; do %&gt;\n   &lt;%= expensive_files_operation %&gt;\n &lt;% end %&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: That would add something like &quot;Process data files (345.2ms)&quot; to the log, which you can then use to compare timings when optimizing your code.
- !ruby/struct:SM::Flow::P 
  body: You may give an optional logger level as the :level option. (:debug, :info, :warn, :error); the default value is :info.
- !ruby/struct:SM::Flow::VERB 
  body: " &lt;% benchmark &quot;Low-level files&quot;, :level =&gt; :debug do %&gt;\n   &lt;%= lowlevel_files_operation %&gt;\n &lt;% end %&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: "Finally, you can pass true as the third argument to silence all log activity inside the block. This is great for boiling down a noisy block to just a single statement:"
- !ruby/struct:SM::Flow::VERB 
  body: " &lt;% benchmark &quot;Process data files&quot;, :level =&gt; :info, :silence =&gt; true do %&gt;\n   &lt;%= expensive_and_chatty_files_operation %&gt;\n &lt;% end %&gt;\n"
full_name: ActionView::Helpers::BenchmarkHelper#benchmark
is_singleton: false
name: benchmark
params: (message = "Benchmarking", options = {}) {|| ...}
visibility: public
