sonic-pi

https://github.com/sonic-pi-net/sonic-pi

C++

Code. Music. Live.

ActiveSupport::Benchmarkable#benchmark

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 (<tt>:debug</tt>, <tt>:info</tt>,
<tt>:warn</tt>, <tt>:error</tt>) as the <tt>:level</tt> option. The
default logger level value is <tt>:info</tt>.

 <% benchmark 'Low-level files', level: :debug do %>
   <%= lowlevel_files_operation %>
 <% end %>

Finally, you can pass true as the third argument to silence all log
activity (other than the timing information) from inside the block. This
is great for boiling down a noisy block to just a single statement that
produces one log line:

 <% benchmark 'Process data files', level: :info, silence: true do %>
   <%= expensive_and_chatty_files_operation %>
 <% end %>

Source | Google | Stack overflow

Edit

git clone [email protected]:sonic-pi-net/sonic-pi.git

cd sonic-pi

open app/server/ruby/vendor/activesupport-7.0.6/lib/active_support/benchmarkable.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-ActiveSupport--Benchmarkable-benchmark-for-pr


# Commit to git

git add app/server/ruby/vendor/activesupport-7.0.6/lib/active_support/benchmarkable.rbgit commit -m "better docs for ActiveSupport::Benchmarkable#benchmark"


# Open pull request

gem install hub # on a mac you can `brew install hub`

hub fork

git push <your name> -your-name--update-docs-ActiveSupport--Benchmarkable-benchmark-for-pr

hub pull-request


# Celebrate!