Sha256: 1ae4a30d7f846cc8ddf8eb1cfbce653a755d7d5e2a6fec86a7a859ee26004ea0
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
require 'benchmark/ips' module Vedeu module Logging module Debug # Provide wrapper for 'benchmark-ips' gem. # class IPS attr_accessor :samples attr_accessor :benchmark # @return [Vedeu::Logging::Debug::IPS] def initialize @old_stdout = $stdout $stdout = StringIO.new @samples = {} @benchmark = Benchmark::IPS::Job.new @count = 0 end # @param label [String] # @return [void] def add_item(label = '', &blk) samples[label] = blk @count += 1 benchmark.item(label, &blk) end # @return [void] def execute! benchmark.compare! benchmark.run_warmup benchmark.run $stdout.sync = true benchmark.run_comparison benchmark.full_report Vedeu.log(type: :debug, message: "IPS:\n#{$stdout.string}".freeze) $stdout = @old_stdout Vedeu.log(type: :debug, message: "Running: #{key}".freeze) samples[key].call end private # @return [void] def key @key ||= samples.keys.sample end end # IPS end # Debug end # Logging end # Vedeu
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.6.48 | lib/vedeu/logging/ips.rb |