Module: Seabright::Benchmark::ClassMethods

Defined in:
lib/redis_object/ext/benchmark.rb

Instance Method Summary collapse

Instance Method Details

#benchmark(*method_names) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/redis_object/ext/benchmark.rb', line 6

def benchmark(*method_names)
  method_names.each do |method_name|
    original_method = instance_method(method_name)
    define_method(method_name) do |*args,&blk|
      st = Time.now
      out = original_method.bind(self).call(*args,&blk)
      self.class.benchmark_out(method_name,args,Time.now - st)
      out
    end
  end
end

#benchmark!Object



22
23
24
# File 'lib/redis_object/ext/benchmark.rb', line 22

def benchmark!
  benchmark :set, :get, :<<
end

#benchmark_out(method, args, time) ⇒ Object



18
19
20
# File 'lib/redis_object/ext/benchmark.rb', line 18

def benchmark_out(method,args,time)
  Log.debug "[RedisObject::Benchmark] #{method}(#{args.join(",")}): #{time}"
end