|
Boost : |
Subject: Re: [boost] Proposed templated integer_sort
From: Steven Ross (spreadsort_at_[hidden])
Date: 2009-02-11 11:40:39
The graphs are updated now. I also resolved an MSVC issue due to a missing
include <limits>. I've reuploaded algorithm_sorting.zip to the Boost Vault.
A friend of mine ran tune.pl with MSVC and found these results:
integer_sort is 30% faster than std::sort
string_sort is 88% faster than std::sort
float_sort is 460% faster than std::sort
He also found that the ideal MAX_SPLITS on Windows is larger. On his system
12 was ideal, but 16 was close. On some Windows systems MAX_SPLITS 16 will
probably be ideal, due to whatever 16-bit optimizations are in the OS. The
value of MAX_SPLITS is important to the performance of this algorithm; the
other values aren't as critical, and can usually be left alone.
On OSX/Darwin I get roughly a 2X speedup across all three algorithms.
Questions:
1) Is it a good idea to automatically detect the OS, and for windows set
MAX_SPLITS to 16, and for all other OSes set it to 10? Or should I just
leave it always 10 and let the user modify it if they are
performance-conscious, using either the tune.pl script or manually?
2) Does anyone have any issues with this library? Besides comments on
MAX_SPLITS, I think this is done.
Steve
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk