2014-11-10 9:37 GMT+04:00 Edward Diener
The formal review of the Sort library by Steven Ross starts today, November 10 and is scheduled to continue through November 19th.
<...>
- What is your evaluation of the design?
API is good.
- What is your evaluation of the implementation?
Implementation is not tuned. For example, take a look here https://github.com/spreadsort/sort/blob/master/include/boost/sort/detail/spr... and here https://github.com/spreadsort/sort/blob/master/include/boost/sort/detail/spr... . Memory allocations occur at those points, however they could be easily avoided. Here's a typical use case of `size_bins` function: https://github.com/spreadsort/sort/blob/master/include/boost/sort/detail/str.... Using a stack based buffer would significantly improve sort times on small datasets. - What is your evaluation of the documentation?
OK
- What is your evaluation of the potential usefulness of the library?
Useful.
- Did you try to use the library? With what compiler? Did you have any problems?
Have not used it.
- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
Quick reading.
- Are you knowledgeable about the problem domain?
Not a pro in radix based sorts.
And finally, every review should attempt to answer this question:
- Do you think the library should be accepted as a Boost library?
Not in its current state. And not as a separate library. This must be a part of Boost.Algorithm library. This library must be accepted only after some good optimization. As a result, I'd like to see this library outperforming std::sort even on small datasets (~150 elements). At the current point std::sort and sort from the subject library differ on some constant value (see graph/windows_integer_sort.htm or graph/windows_string_sort.htm), not O(n*log(n)) vs O(n*log(k/s+s)). -- Best regards, Antony Polukhin