bakoe / hyrise

Hyrise is a research in-memory database.
https://hpi.de/plattner/projects/hyrise.html
MIT License
0 stars 0 forks source link

Add micro benchmarks for comparing std::sort and std::stable_sort #6

Open bakoe opened 4 years ago

bakoe commented 4 years ago

Based on https://stackoverflow.com/questions/810951/how-big-is-the-performance-gap-between-stdsort-and-stdstable-sort-in-practic/34668459#34668459, let's integrate some corresponding micro benchmarks to Hyrise (at least temporarily) as well, in order to compare the performance of std::sort and std::stable_sort with Hyrise's data structures and data types.

tobodner commented 4 years ago

@bakoe: Just wondering - What is the spike label for?

bakoe commented 4 years ago

@tobodner It's for indicating that the code produced for resolving this issue is not meant as production-ready code which is aimed at being included in the hyrise upstream, but instead as a way of quickly finding out which direction our implementation should go into – see https://en.wikipedia.org/wiki/Spike_(software_development).

In the concrete example, the label was meant to indicate that the micro benchmark comparison between std::sort and std::stable_sort was only targeted at deciding which of the two sorting functions we use in our re-implementation of the Sort operator (based on the difference in the performance – which could only be analysed with some sort of benchmarks – and the inherent stable-ness or unstable-ness). The benchmark was not meant to be included in the actual master code base, let alone in the hyrise upstream – thus the spike label.

tobodner commented 4 years ago

@bakoe: Thanks for the pointer! I was not aware of the term..