Skip to content

Stop favouring numeric sort specialized algorithms #11

Open
@dumblob

Description

@dumblob

It seems the current benchmark sorts numbers (disregarding whether floats or integers) in an array/vector/list/...

Yet, this is fundamentally flawed in my opinion as many (most?) languages and compilers and libraries do specialization (in compile time or in run time or both) and switch to magnitudes faster numeric sorting algorithm ("non-comparison sort") which has totally different mathematical boundaries (almost O(n)) than what this benchmark wants to measure - i.e. the pair-wise comparison sorting algorithms ("comparison sort") with provably best possible O(n log n).

https://en.wikipedia.org/wiki/Sorting_algorithm#Non-comparison_sorts

Should we rather compare some complex structs of e.g. 19 bytes in size?

I would prefer no power of 2, not bigger than half of a typical cache line (i.e. max 32 bytes), no even number, and not "power of two plus 1" (to make struct compression difficult to avoid matching power of 2). Any implicit padding under the hood is fair IMHO.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions