aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels/cache.py
diff options
context:
space:
mode:
authorDavid Cramer2012-01-12 19:13:47 -0800
committerDavid Cramer2012-01-12 19:13:47 -0800
commit01cd08518ded622d3308dd539b00ebbf7012894e (patch)
treea9cca14ff92d4602a51d4999430574587a733d1d /debug_toolbar/panels/cache.py
parentc4eeef24faa81e7bc64ebfbd72c046f25c7b3381 (diff)
downloaddjango-debug-toolbar-01cd08518ded622d3308dd539b00ebbf7012894e.tar.bz2
pep8
Diffstat (limited to 'debug_toolbar/panels/cache.py')
-rw-r--r--debug_toolbar/panels/cache.py24
1 files changed, 13 insertions, 11 deletions
diff --git a/debug_toolbar/panels/cache.py b/debug_toolbar/panels/cache.py
index 620be86..ace343b 100644
--- a/debug_toolbar/panels/cache.py
+++ b/debug_toolbar/panels/cache.py
@@ -6,12 +6,13 @@ from django.core.cache.backends.base import BaseCache
from django.utils.translation import ugettext_lazy as _
from debug_toolbar.panels import DebugPanel
+
class CacheStatTracker(BaseCache):
"""A small class used to track cache calls."""
def __init__(self, cache):
self.cache = cache
self.reset()
-
+
def reset(self):
self.calls = []
self.hits = 0
@@ -21,11 +22,11 @@ class CacheStatTracker(BaseCache):
self.get_many = 0
self.deletes = 0
self.total_time = 0
-
+
def _get_func_info(self):
stack = inspect.stack()[2]
return (stack[1], stack[2], stack[3], stack[4])
-
+
def get(self, key, default=None):
t = time.time()
value = self.cache.get(key, default)
@@ -38,7 +39,7 @@ class CacheStatTracker(BaseCache):
self.gets += 1
self.calls.append((this_time, 'get', (key,), self._get_func_info()))
return value
-
+
def set(self, key, value, timeout=None):
t = time.time()
self.cache.set(key, value, timeout)
@@ -46,7 +47,7 @@ class CacheStatTracker(BaseCache):
self.total_time += this_time * 1000
self.sets += 1
self.calls.append((this_time, 'set', (key, value, timeout), self._get_func_info()))
-
+
def delete(self, key):
t = time.time()
self.cache.delete(key)
@@ -54,7 +55,7 @@ class CacheStatTracker(BaseCache):
self.total_time += this_time * 1000
self.deletes += 1
self.calls.append((this_time, 'delete', (key,), self._get_func_info()))
-
+
def get_many(self, keys):
t = time.time()
results = self.cache.get_many(keys)
@@ -68,6 +69,7 @@ class CacheStatTracker(BaseCache):
self.hits += 1
self.calls.append((this_time, 'get_many', (keys,), self._get_func_info()))
+
class CacheDebugPanel(DebugPanel):
"""
Panel that displays the cache statistics.
@@ -75,7 +77,7 @@ class CacheDebugPanel(DebugPanel):
name = 'Cache'
template = 'debug_toolbar/panels/cache.html'
has_content = True
-
+
def __init__(self, *args, **kwargs):
super(CacheDebugPanel, self).__init__(*args, **kwargs)
# This is hackish but to prevent threading issues is somewhat needed
@@ -85,16 +87,16 @@ class CacheDebugPanel(DebugPanel):
else:
self.cache = CacheStatTracker(cache.cache)
cache.cache = self.cache
-
+
def nav_title(self):
return _('Cache: %.2fms') % self.cache.total_time
-
+
def title(self):
return _('Cache Usage')
-
+
def url(self):
return ''
-
+
def process_response(self, request, response):
self.record_stats({
'cache_calls': len(self.cache.calls),