Sha256: e342903f4e26b48f63f3135a055677c178df65ec359cdf8fb3e5b050221470d8
Contents?: true
Size: 1.25 KB
Versions: 4
Compression:
Stored size: 1.25 KB
Contents
require 'benchmark' module ActionView module Helpers # This helper offers a method to measure the execution time of a block # in a template. module BenchmarkHelper # 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. 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 end end end
Version data entries
4 entries across 3 versions & 2 rubygems