mirror of
https://github.com/python/cpython.git
synced 2025-11-11 06:39:54 +00:00
The dynamic performance hack is (mostly) done.
This commit is contained in:
parent
ea32cbb24e
commit
27b7f9f91e
1 changed files with 11 additions and 10 deletions
21
PLAN.txt
21
PLAN.txt
|
|
@ -4,16 +4,6 @@ Project: core implementation
|
||||||
Still to do
|
Still to do
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
More performance work -- one particular test, test_descr.inherits(),
|
|
||||||
is still about 50% slower with dynamic classes. :-( The approach of
|
|
||||||
choice would be:
|
|
||||||
|
|
||||||
Add a list of weak refs to derived classes to each dynamic
|
|
||||||
class, and trap setattr+delattr on the base class so that they
|
|
||||||
update the tp_XXX slot in each derived class when the base class
|
|
||||||
__XXX__ gets set or deleted. More work, but more gain (zero waste
|
|
||||||
in slot_tp_XXX when __XXX__ is not overridden).
|
|
||||||
|
|
||||||
Add __del__ handlers?
|
Add __del__ handlers?
|
||||||
|
|
||||||
Allow assignment to __bases__ and __dict__?
|
Allow assignment to __bases__ and __dict__?
|
||||||
|
|
@ -35,6 +25,17 @@ implemented.
|
||||||
Done (mostly)
|
Done (mostly)
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
More performance work -- one particular test, test_descr.inherits(),
|
||||||
|
is still about 50% slower with dynamic classes. :-( The approach of
|
||||||
|
choice would be:
|
||||||
|
|
||||||
|
Add a list of weak refs to derived classes to each dynamic
|
||||||
|
class, and trap setattr+delattr on the base class so that they
|
||||||
|
update the tp_XXX slot in each derived class when the base class
|
||||||
|
__XXX__ gets set or deleted. More work, but more gain (zero waste
|
||||||
|
in slot_tp_XXX when __XXX__ is not overridden).
|
||||||
|
*** That's done now, with great success. ***
|
||||||
|
|
||||||
Make __dynamic__ the default. *** done (but more performance work
|
Make __dynamic__ the default. *** done (but more performance work
|
||||||
needs to be done). ***
|
needs to be done). ***
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue