[Python-Dev] Pie-thon benchmarks

Tim Peters tim.one at comcast.net
Sun Dec 14 20:16:08 EST 2003


[Guido]
>> Ah, but then Dan will just add Karatsuba multiplication to Parrot,
>> too.  And AFAIK, Timsort isn't patented. :-)

[Delaney, Timothy C (Timothy)]
> True. But do you really expect that anyone except Tim could get it
> *right*???

Yup!  I documented the approach in soul-numbing detail.  Last I saw, Perl
had an adaptive mergesort too, and in principle that's the same thing.  The
Python implementation is a lot more long-winded, because it's trying harder
to use less memory and be friendlier to the cache, uses only less-than
instead of Perl's 3-outcome comparison primitive, and tries harder to
minimize wasted comparisons if the data turns out to be random -- but that's
all shallow complication.  The core idea can be explained in less than 50
pages of dense text <wink>.  OK, in less than 50 words:  when one input to a
merge "wins" several times in a row, you can potentially save a ton of
comparisons by skipping ahead.  All the rest is engineering.




More information about the Python-Dev mailing list