| Module | ActionController::Benchmarking::ClassMethods |
| In: |
vendor/rails/actionpack/lib/action_controller/benchmarking.rb
|
Log and benchmark the workings of a single block and silence whatever logging that may have happened inside it (unless use_silence is set to false).
The benchmark is only recorded if the current level of the logger matches the log_level, which makes it easy to include benchmarking statements in production software that will remain inexpensive because the benchmark will only be conducted if the log level is low enough.
# File vendor/rails/actionpack/lib/action_controller/benchmarking.rb, line 23
23: def benchmark(title, log_level = Logger::DEBUG, use_silence = true)
24: if logger && logger.level == log_level
25: result = nil
26: seconds = Benchmark.realtime { result = use_silence ? silence { yield } : yield }
27: logger.add(log_level, "#{title} (#{'%.5f' % seconds})")
28: result
29: else
30: yield
31: end
32: end