The dynamic performance hack is (mostly) done.

This commit is contained in:
Guido van Rossum 2001-10-12 17:43:43 +00:00
parent ea32cbb24e
commit 27b7f9f91e
1 changed files with 11 additions and 10 deletions

View File

@ -4,16 +4,6 @@ Project: core implementation
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?
Allow assignment to __bases__ and __dict__?
@ -35,6 +25,17 @@ implemented.
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
needs to be done). ***