Sha256: e6de3da92d51946ad8aa01a6f7f4b727add0baf36892cfcef3c2a94729ea33f8
Contents?: true
Size: 934 Bytes
Versions: 4
Compression:
Stored size: 934 Bytes
Contents
module Endeca module Benchmarking # Log and benchmark the workings of a single block. Will only be called if # Endeca.debug and Endeca.benchmark are true. def bm(metric_symbol, detail = nil) result = nil ms = ::Benchmark.ms { result = yield } add_bm_detail(metric_symbol,ms,detail) if detail.to_s.strip.length > 0 increase_metric(metric_symbol, ms) Endeca.logger.debug("#{metric_symbol.to_s}: #{'%.1f' % ms}ms") result end def increase_metric(metric_symbol, up_value) Thread.current[:endeca] ||= {} Thread.current[:endeca][metric_symbol] ||= 0 Thread.current[:endeca][metric_symbol] += up_value end private def add_bm_detail(label,time,detail) Thread.current[:endeca] ||= {} Thread.current[:endeca]["#{label}_detail"] ||= [] Thread.current[:endeca]["#{label}_detail"] << {:detail => detail, :time => time} end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
endeca-1.5.3 | lib/endeca/benchmarking.rb |
endeca-1.5.2 | lib/endeca/benchmarking.rb |
endeca-1.5.1 | lib/endeca/benchmarking.rb |
endeca-1.5.0 | lib/endeca/benchmarking.rb |