Class: MemCache
- Inherits:
-
Object
- Object
- MemCache
- Defined in:
- lib/time_bandits/monkey_patches/memcache-client.rb
Constant Summary collapse
- @@cache_latency =
0.0- @@cache_touches =
0- @@cache_misses =
0
Class Method Summary collapse
Instance Method Summary collapse
- #get_multi_with_benchmark(*keys) ⇒ Object (also: #get_multi)
- #get_with_benchmark(key, raw = false) ⇒ Object (also: #get)
Class Method Details
.cache_runtime ⇒ Object
23 24 25 |
# File 'lib/time_bandits/monkey_patches/memcache-client.rb', line 23 def self.cache_runtime sprintf "MC: %.3f(%dr,%dm)", @@cache_latency * 1000, @@cache_touches, @@cache_misses end |
.get_benchmarks ⇒ Object
19 20 21 |
# File 'lib/time_bandits/monkey_patches/memcache-client.rb', line 19 def self.get_benchmarks [@@cache_latency, @@cache_touches, @@cache_misses] end |
.metrics ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/time_bandits/monkey_patches/memcache-client.rb', line 27 def self.metrics { :memcache_time => @@cache_latency * 1000, :memcache_calls => @@cache_touches, :memcache_misses => @@cache_misses } end |
.reset_benchmarks ⇒ Object
13 14 15 16 17 |
# File 'lib/time_bandits/monkey_patches/memcache-client.rb', line 13 def self.reset_benchmarks @@cache_latency = 0.0 @@cache_touches = 0 @@cache_misses = 0 end |
Instance Method Details
#get_multi_with_benchmark(*keys) ⇒ Object Also known as: get_multi
45 46 47 48 49 50 51 |
# File 'lib/time_bandits/monkey_patches/memcache-client.rb', line 45 def get_multi_with_benchmark(*keys) results = nil @@cache_latency += Benchmark.realtime{ results=get_multi_without_benchmark(*keys) } @@cache_touches += 1 @@cache_misses += keys.size - results.size results end |
#get_with_benchmark(key, raw = false) ⇒ Object Also known as: get
35 36 37 38 39 40 41 |
# File 'lib/time_bandits/monkey_patches/memcache-client.rb', line 35 def get_with_benchmark(key, raw = false) val = nil @@cache_latency += Benchmark.realtime{ val=get_without_benchmark(key, raw) } @@cache_touches += 1 @@cache_misses += 1 if val.nil? val end |