On Wed, Oct 12, 2016 at 4:26 PM Terry Reedy <tjreedy@udel.edu> wrote:
I suspect that optimizing string sorting
will take some experimentation.  If the initial item is str, it might be
worthwhile to record the highest 'kind' during the type scan, so that
strncmp can be used if all are ascii or latin-1.

My thoughts exactly.

One other optimization along these lines: the reason ints don't give quite as shocking results as floats is that comparisons are a bit more expensive: one first has to check that the int would fit in a c long before comparing; if not, then a custom procedure has to be used. However, in practice ints being sorted are almost always smaller in absolute value than 2**32 or whatever. So I think, just as it might pay off to check for latin-1 and use strcmp, it may also pay off to check for fits-in-a-C-long and use a custom function for that case as well, since the performance would be precisely as awesome as the float performance that started this thread: comparisons would just be the cost of pointer dereference plus the cost of C long comparison, i.e. the minimum possible cost.