Class: MemCache

Inherits:
Object
  • Object
show all
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

Class Method Details

.cache_runtimeObject



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_benchmarksObject



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

.metricsObject



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_benchmarksObject



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