[Python-Dev] cmp(x,x)

Michael Chermside mcherm at mcherm.com
Mon May 24 08:50:07 EDT 2004


I wrote:
> Performance is certainly a legitimate concern.

Armin replied:
> Ok, then the current situation looks like the best one.  I
> suggest we just
> drop a note in the documentation saying that if there are
> objects for which
> x.__eq__(x) isn't necessarily true, you shouldn't expect them
> to be handled in
> a fully consistent way.
  [...]
> There is an extra costly indirection until the execution
> reaches that point.

Armin:

Performance is a *legitimate* concern, but not an *overwhelming*
one. If we are in danger of having to walk over the entirety of a
(possibly large) recusive structure (eg: tuple of tuples) to do
a comparison, then that's dangerously slow, and it's worth mucking
with the definition of equality to avoid it. But a single indirection
is "costly" only to someone capable of reaching your level of
close-to-the-machine performance understanding. I say, go with your
original plan -- the current behavior is a mess.

-- Michael Chermside






More information about the Python-Dev mailing list