Sorting: too different times. Why?

Chris Rebert clp2 at rebertia.com
Sun Nov 22 06:07:08 EST 2009


On Sun, Nov 22, 2009 at 2:56 AM, n00m <n00m at narod.ru> wrote:
> I was expecting the 1st method would be *slower* than the 2nd one :-)
> Or at least equal... Just random ("intuitive") expectations

The second method repeatedly looks up left_item.__class__.__cmp__
(i.e. Vector.__cmp__) when doing the necessary comparisons between the
list items; while these lookups are optimized and are fast, they are
not free and cannot be skipped because Python doesn't know the list
contains only Vectors.
The first method uses the single provided comparison function and thus
does no such lookups; hence, it's faster.

That's my guess anyway.

Cheers,
Chris
--
http://blog.rebertia.com



More information about the Python-list mailing list