Advertisement
nux95

Python Benchmark Decorator

Jul 2nd, 2011
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.86 KB | None | 0 0
  1. from    time        import  time
  2.  
  3. class bench(object):
  4.     __slots__ = (
  5.       "_f",
  6.       "_time",
  7.       "__name__",
  8.     )
  9.  
  10.     def __init__(self, f):
  11.         self._f       = f
  12.         self._time    = -1.
  13.  
  14.         self.__name__ = f.__name__
  15.  
  16.     def __call__(self, *args, **kwargs):
  17.         _time       = time.time()
  18.         _return     = self._f(*args, **kwargs)
  19.  
  20.         self._time  = time.time() - _time
  21.  
  22.         return _return
  23.  
  24.     def __repr__(self):
  25.         return '<benchmarked function %s, %s, at %s>' % (
  26.             self.__name__,
  27.             round(self._time, 10),
  28.             hex(id(self)),
  29.         )
  30.  
  31.     @ property
  32.     def time(self):
  33.         return self._time
  34.  
  35.     @ property
  36.     def wrapped(self):
  37.         return self._f
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement