Mercurial > cpython-lru_cache-weakref
view Tools/pybench/With.py @ 80661:94de77bd0b4b 2.7
Issue #16194: document imp.load_dynamic problems
when read several extension modules from the same binary object file.
| author | Andrew Svetlov <andrew.svetlov@gmail.com> |
|---|---|
| date | Thu, 29 Nov 2012 19:51:28 +0200 |
| parents | 15842094b089 |
| children | 63741c7521aa |
line wrap: on
line source
from __future__ import with_statement from pybench import Test class WithFinally(Test): version = 2.0 operations = 20 rounds = 80000 class ContextManager(object): def __enter__(self): pass def __exit__(self, exc, val, tb): pass def test(self): cm = self.ContextManager() for i in xrange(self.rounds): with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass with cm: pass def calibrate(self): cm = self.ContextManager() for i in xrange(self.rounds): pass class TryFinally(Test): version = 2.0 operations = 20 rounds = 80000 class ContextManager(object): def __enter__(self): pass def __exit__(self): # "Context manager" objects used just for their cleanup # actions in finally blocks usually don't have parameters. pass def test(self): cm = self.ContextManager() for i in xrange(self.rounds): cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() cm.__enter__() try: pass finally: cm.__exit__() def calibrate(self): cm = self.ContextManager() for i in xrange(self.rounds): pass class WithRaiseExcept(Test): version = 2.0 operations = 2 + 3 + 3 rounds = 100000 class BlockExceptions(object): def __enter__(self): pass def __exit__(self, exc, val, tb): return True def test(self): error = ValueError be = self.BlockExceptions() for i in xrange(self.rounds): with be: raise error with be: raise error with be: raise error,"something" with be: raise error,"something" with be: raise error,"something" with be: raise error("something") with be: raise error("something") with be: raise error("something") def calibrate(self): error = ValueError be = self.BlockExceptions() for i in xrange(self.rounds): pass
