[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Help with eql specializers



I've hit upon a major performance problem with PCL, and I don't know what
caused it.  The only thing I know for sure is that it happened when I
began using eql specializers on a certain generic function.  My typical
runtime on this function jumped from around .03 seconds to about 6 seconds.

I ran the symbolics Metering Interface over the form, and found that
almost all of the time is spent in PCL:NOTICE-METHODS-CHANGE-1.  Inside
of NOTICE-METHODS-CHANGE-1, the run-time is split between
COMPUTE-COMBINED-METHODS and UPDATE-DISCRIMINATOR-CODE of STANDARD-GENERIC-
FUNCTION.  In fact, I placed a break loop in NOTICE-METHODS-CHANGE-1, and
saw that it was getting called a zillion (excuse me) times.

SHould I be avoiding EQL specializers?  Can I expect to always pay this
kind of performance penalty for using them?  Or is there a problem?  The
generic function in question here as a total of four methods defined on
it, three of which have EQL specializers.

Any help is really appreciated.  I'm going nuts over this, because it
is tied in with menu clicks, and my users are waiting over 6 seconds now
between clicking on a window, and getting a response.

dan haug
Internet: haug@austin.lockheed.com
UUCP:     ut-emx!lad-shrike!aihaug