Added a timer util.

This commit is contained in:
AppleGrew (applegrew) 2012-10-13 20:56:39 +05:30
parent be760d69c0
commit 487e55020c
3 changed files with 26 additions and 2 deletions

View file

@ -41,7 +41,12 @@ class AutoViewFieldMixin(object):
logger.info("Registering auto field: %s", name)
from . import util
id_ = util.register_field(name, self)
rf = util.register_field
if logger.isEnabledFor(logging.DEBUG):
rf = util.timer(rf)
id_ = rf(name, self)
self.field_id = id_
super(AutoViewFieldMixin, self).__init__(*args, **kwargs)

View file

@ -271,3 +271,22 @@ def get_field(id_):
"""
return __id_store.get(id_, None)
def timer(f):
def inner(*args, **kwargs):
import sys, time
if sys.platform == "win32":
# On Windows, the best timer is time.clock()
default_timer = time.clock
multiplier = 1.0
else:
# On most other platforms the best timer is time.time()
default_timer = time.time
multiplier = 1000.0
timeS = default_timer()
ret = f(*args, **kwargs)
timeE = default_timer()
logger.debug("Time taken by %s: %0.3f ms" % (f.func_name, (timeE - timeS) * multiplier))
return ret
return inner

View file

@ -162,7 +162,7 @@ LOGGING = {
'django_select2': {
'handlers':['console'],
'propagate': True,
'level':'INFO',
'level':'DEBUG',
},
'django.request': {
'handlers': ['mail_admins'],