X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factionpack%2Flib%2Faction_view%2Fhelpers%2Fbenchmark_helper.rb;fp=vendor%2Frails%2Factionpack%2Flib%2Faction_view%2Fhelpers%2Fbenchmark_helper.rb;h=bd72cda70038679099b4f5e51ee7a8db8019f713;hb=d115f2e23823271635bad69229a42cd8ac68debe;hp=0000000000000000000000000000000000000000;hpb=37cb670bf3ddde90b214e591f100ed4446469484;p=depot.git diff --git a/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb b/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb new file mode 100644 index 0000000..bd72cda --- /dev/null +++ b/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb @@ -0,0 +1,33 @@ +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 \ No newline at end of file