Tweak comments on performance impact based on current implementation
This commit is contained in:
parent
db055e0d40
commit
cd484999f2
23
pep-0377.txt
23
pep-0377.txt
|
@ -166,7 +166,7 @@ then handles and suppresses::
|
||||||
|
|
||||||
With the proposed semantic change in place, the contextlib based examples
|
With the proposed semantic change in place, the contextlib based examples
|
||||||
above would then "just work", but the class based version would need
|
above would then "just work", but the class based version would need
|
||||||
adjustment to take advantage of the new semantics::
|
a small adjustment to take advantage of the new semantics::
|
||||||
|
|
||||||
class CM(object):
|
class CM(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -220,17 +220,31 @@ the same semantic differences as are seen with the ``combined()`` context
|
||||||
manager in the above example.
|
manager in the above example.
|
||||||
|
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
==================
|
||||||
|
|
||||||
|
Implementing the new semantics makes it necessary to store the references
|
||||||
|
to the ``__enter__`` and ``__exit__`` methods in temporary variables instead
|
||||||
|
of on the stack. This results in a slight regression in ``with`` statement
|
||||||
|
speed relative to Python 2.6/3.1. However, implementing a custom
|
||||||
|
``SETUP_WITH`` opcode would negate any differences between the two
|
||||||
|
approaches (as well as dramatically improving speed by eliminating more
|
||||||
|
than a dozen unnecessary trips around the eval loop).
|
||||||
|
|
||||||
|
|
||||||
Reference Implementation
|
Reference Implementation
|
||||||
========================
|
========================
|
||||||
|
|
||||||
In work.
|
Patch attached to Issue 5251 [1]. That patch uses only existing opcodes
|
||||||
|
(i.e. no ``SETUP_WITH``).
|
||||||
|
|
||||||
|
|
||||||
Acknowledgements
|
Acknowledgements
|
||||||
================
|
================
|
||||||
|
|
||||||
James William Pye both raised the issue and suggested the solution
|
James William Pye both raised the issue and suggested the basic outline of
|
||||||
described in this PEP.
|
the solution described in this PEP.
|
||||||
|
|
||||||
|
|
||||||
References
|
References
|
||||||
==========
|
==========
|
||||||
|
@ -244,6 +258,7 @@ References
|
||||||
.. [3] Import-style syntax to reduce indentation of nested with statements
|
.. [3] Import-style syntax to reduce indentation of nested with statements
|
||||||
(http://mail.python.org/pipermail/python-ideas/2009-March/003188.html)
|
(http://mail.python.org/pipermail/python-ideas/2009-March/003188.html)
|
||||||
|
|
||||||
|
|
||||||
Copyright
|
Copyright
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue