@@ -22,78 +22,62 @@ class TimerDebugPanel(DebugPanel):
22
22
else :
23
23
has_content = True
24
24
has_resource = True
25
-
25
+
26
26
def process_request (self , request ):
27
27
self ._start_time = time .time ()
28
28
if self .has_resource :
29
29
self ._start_rusage = resource .getrusage (resource .RUSAGE_SELF )
30
-
30
+
31
31
def process_response (self , request , response ):
32
- total_time = (time .time () - self ._start_time ) * 1000
32
+ stats = { 'total_time' : (time .time () - self ._start_time ) * 1000 }
33
33
if self .has_resource :
34
34
self ._end_rusage = resource .getrusage (resource .RUSAGE_SELF )
35
-
36
- utime = 1000 * self ._elapsed_ru ('ru_utime' )
37
- stime = 1000 * self ._elapsed_ru ('ru_stime' )
38
- vcsw = self ._elapsed_ru ('ru_nvcsw' )
39
- ivcsw = self ._elapsed_ru ('ru_nivcsw' )
40
- minflt = self ._elapsed_ru ('ru_minflt' )
41
- majflt = self ._elapsed_ru ('ru_majflt' )
42
- # these are documented as not meaningful under Linux. If you're running BSD
43
- # feel free to enable them, and add any others that I hadn't gotten to before
44
- # I noticed that I was getting nothing but zeroes and that the docs agreed. :-(
45
- #
46
- # blkin = self._elapsed_ru('ru_inblock')
47
- # blkout = self._elapsed_ru('ru_oublock')
48
- # swap = self._elapsed_ru('ru_nswap')
49
- # rss = self._end_rusage.ru_maxrss
50
- # srss = self._end_rusage.ru_ixrss
51
- # urss = self._end_rusage.ru_idrss
52
- # usrss = self._end_rusage.ru_isrss
53
-
54
- self .record_stats ({
55
- 'total_time' : total_time ,
56
- 'utime' : utime ,
57
- 'stime' : stime ,
58
- 'vcsw' : vcsw ,
59
- 'ivcsw' : ivcsw ,
60
- 'minflt' : minflt ,
61
- 'majflt' : majflt ,
62
- # 'blkin': blkin,
63
- # 'blkout': blkout,
64
- # 'swap': swap,
65
- # 'rss': rss,
66
- # 'urss': urss,
67
- # 'srss': srss,
68
- # 'usrss': usrss,
69
- })
70
-
35
+ stats ['utime' ] = 1000 * self ._elapsed_ru ('ru_utime' )
36
+ stats ['stime' ] = 1000 * self ._elapsed_ru ('ru_stime' )
37
+ stats ['vcsw' ] = self ._elapsed_ru ('ru_nvcsw' )
38
+ stats ['ivcsw' ] = self ._elapsed_ru ('ru_nivcsw' )
39
+ stats ['minflt' ] = self ._elapsed_ru ('ru_minflt' )
40
+ stats ['majflt' ] = self ._elapsed_ru ('ru_majflt' )
41
+ # these are documented as not meaningful under Linux. If you're running BSD
42
+ # feel free to enable them, and add any others that I hadn't gotten to before
43
+ # I noticed that I was getting nothing but zeroes and that the docs agreed. :-(
44
+ #
45
+ # stats['blkin'] = self._elapsed_ru('ru_inblock')
46
+ # stats['blkout'] = self._elapsed_ru('ru_oublock')
47
+ # stats['swap'] = self._elapsed_ru('ru_nswap')
48
+ # stats['rss'] = self._end_rusage.ru_maxrss
49
+ # stats['srss'] = self._end_rusage.ru_ixrss
50
+ # stats['urss'] = self._end_rusage.ru_idrss
51
+ # stats['usrss'] = self._end_rusage.ru_isrss
52
+
53
+ self .record_stats (stats )
54
+
71
55
def nav_title (self ):
72
56
return _ ('Time' )
73
-
57
+
74
58
def nav_subtitle (self ):
75
59
stats = self .get_stats ()
76
-
60
+
77
61
# TODO l10n
78
62
if self .has_resource :
79
63
utime = self ._end_rusage .ru_utime - self ._start_rusage .ru_utime
80
64
stime = self ._end_rusage .ru_stime - self ._start_rusage .ru_stime
81
65
return 'CPU: %0.2fms (%0.2fms)' % ((utime + stime ) * 1000.0 , stats ['total_time' ])
82
66
else :
83
67
return 'TOTAL: %0.2fms' % (stats ['total_time' ])
84
-
68
+
85
69
def title (self ):
86
70
return _ ('Resource Usage' )
87
-
71
+
88
72
def url (self ):
89
73
return ''
90
-
74
+
91
75
def _elapsed_ru (self , name ):
92
76
return getattr (self ._end_rusage , name ) - getattr (self ._start_rusage , name )
93
-
77
+
94
78
def content (self ):
95
79
stats = self .get_stats ()
96
-
80
+
97
81
# TODO l10n on values
98
82
rows = (
99
83
(_ ('User CPU time' ), '%0.3f msec' % stats ['utime' ]),
@@ -106,7 +90,7 @@ def content(self):
106
90
# ('Page faults', '%d no i/o, %d requiring i/o' % (stats['minflt'], stats['majflt'])),
107
91
# ('Disk operations', '%d in, %d out, %d swapout' % (stats['blkin'], stats['blkout'], stats['swap'])),
108
92
)
109
-
93
+
110
94
context = self .context .copy ()
111
95
context .update ({'rows' : rows ,})
112
96
return render_to_string (self .template , context )
0 commit comments