Mercurial > cpython-lru_cache-weakref
view Tools/pybench/With.py @ 58689:514b56efd89a 3.1
Merged revisions 77962 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r77962 | r.david.murray | 2010-02-04 11:41:57 -0500 (Thu, 04 Feb 2010) | 17 lines
Merged revisions 77943,77959-77960 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77943 | r.david.murray | 2010-02-03 08:36:23 -0500 (Wed, 03 Feb 2010) | 2 lines
Explicitly mention the default value for formatdate's usegmt parameter.
........
r77959 | nick.coghlan | 2010-02-04 07:43:58 -0500 (Thu, 04 Feb 2010) | 1 line
Issue 6760: Clarify args handling for subprocess.Popen. Patch by Chris Rebert
........
r77960 | r.david.murray | 2010-02-04 11:33:31 -0500 (Thu, 04 Feb 2010) | 2 lines
Add Chris Rebert to ACKS for issue 6760 Popen doc improvements.
........
................
| author | R. David Murray <rdmurray@bitdance.com> |
|---|---|
| date | Thu, 04 Feb 2010 16:44:31 +0000 |
| parents | 63741c7521aa |
| children |
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 range(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 range(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 range(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 range(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 range(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 range(self.rounds): pass
