aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels/timer.py
diff options
context:
space:
mode:
Diffstat (limited to 'debug_toolbar/panels/timer.py')
-rw-r--r--debug_toolbar/panels/timer.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/debug_toolbar/panels/timer.py b/debug_toolbar/panels/timer.py
index cafdb05..352bf55 100644
--- a/debug_toolbar/panels/timer.py
+++ b/debug_toolbar/panels/timer.py
@@ -1,4 +1,7 @@
-import resource
+try:
+ import resource
+except ImportError:
+ pass # Will fail on Win32 systems
import time
from django.template.loader import render_to_string
from debug_toolbar.panels import DebugPanel
@@ -9,20 +12,32 @@ class TimerDebugPanel(DebugPanel):
Panel that displays the time a response took in milliseconds.
"""
name = 'Timer'
- has_content = True
+ try: # if resource module not available, don't show content panel
+ resource
+ except NameError:
+ has_content = False
+ has_resource = False
+ else:
+ has_content = True
+ has_resource = True
def process_request(self, request):
self._start_time = time.time()
- self._start_rusage = resource.getrusage(resource.RUSAGE_SELF)
+ if self.has_resource:
+ self._start_rusage = resource.getrusage(resource.RUSAGE_SELF)
def process_response(self, request, response):
self.total_time = (time.time() - self._start_time) * 1000
- self._end_rusage = resource.getrusage(resource.RUSAGE_SELF)
+ if self.has_resource:
+ self._end_rusage = resource.getrusage(resource.RUSAGE_SELF)
def title(self):
- utime = self._end_rusage.ru_utime - self._start_rusage.ru_utime
- stime = self._end_rusage.ru_stime - self._start_rusage.ru_stime
- return 'Time: %0.2fms, %0.2fms CPU' % (self.total_time, (utime + stime) * 1000.0)
+ if self.has_resource:
+ utime = self._end_rusage.ru_utime - self._start_rusage.ru_utime
+ stime = self._end_rusage.ru_stime - self._start_rusage.ru_stime
+ return 'Time: %0.2fms, %0.2fms CPU' % (self.total_time, (utime + stime) * 1000.0)
+ else:
+ return 'Time: %0.2fms' % (self.total_time)
def url(self):
return ''