Author: duncan
Date: Sun Mar 16 17:31:54 2008
New Revision: 10536
Log:
Removed reset, this is sensible to be always reset
Added enabled to enable benchmarking
Modified:
branches/rel-1/freevo/src/util/benchmark.py
Modified: branches/rel-1/freevo/src/util/benchmark.py
==============================================================================
--- branches/rel-1/freevo/src/util/benchmark.py (original)
+++ branches/rel-1/freevo/src/util/benchmark.py Sun Mar 16 17:31:54 2008
@@ -39,43 +39,54 @@
"""
_indentation = 0
- def __init__(self, reset=True):
+ def __init__(self, enabled=True):
""" Contructs the benchmark class
- @param reset: resets the timer a each call
+ @param enabled: enabledd the benchmark timings
"""
- self.reset = reset
+ self.enabled = enabled
self.start = time.time()
def __call__(self, func):
- def newfunc(*args, **kwargs):
- indentation = ' ' * benchmark._indentation
- benchmark._indentation += 1
- if self.reset:
+ if self.enabled:
+ def newfunc(*args, **kwargs):
+ indentation = ' ' * benchmark._indentation
+ benchmark._indentation += 1
+ print '%s-> %s' % (indentation, func.__name__)
self.start = time.time()
- print '%s-> %s' % (indentation, func.__name__)
- try:
- result = func(*args, **kwargs)
- finally:
- print '%s<- %s: %.3f' % (indentation, func.__name__,
time.time() - self.start)
- benchmark._indentation -= 1
- return result
- newfunc.__name__ = func.__name__
- newfunc.__doc__ = func.__doc__
- return newfunc
-
+ try:
+ result = func(*args, **kwargs)
+ finally:
+ print '%s<- %s: %.4f' % (indentation, func.__name__,
time.time() - self.start)
+ benchmark._indentation -= 1
+ return result
+ newfunc.__name__ = func.__name__
+ newfunc.__doc__ = func.__doc__
+ return newfunc
+
+ def origfunc(*args, **kwargs):
+ func(*args, **kwargs)
+ origfunc.__name__ = func.__name__
+ origfunc.__doc__ = func.__doc__
+ return origfunc
if __name__ == '__main__':
@benchmark(False)
+ def not_benchmarked():
+ """print a message"""
+ print 'not benchmarked'
+
+
+ @benchmark()
def quickrunning(n):
"""Wait for n * 1us"""
for i in range(n):
time.sleep(0.000001)
- @benchmark(False)
+ @benchmark()
def longrunning(n):
"""Wait for n * 100ms"""
quickrunning(n)
@@ -83,11 +94,13 @@
time.sleep(0.1)
- @benchmark(False)
+ @benchmark()
def failure():
"""Generate an exception"""
return 1/0
+ not_benchmarked()
+ print '__name__:', not_benchmarked.__name__
longrunning(12)
longrunning(2)
print '__repr__:', longrunning
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog