zhangxp1998·6 anni fa·discuss" It begins with quicksort, it switches to heapsort when the recursion depth exceeds a level based on (the logarithm of) the number of elements being sorted and it switches to insertionsort when the number of elements is below some threshold. "
zhangxp1998·6 anni fa·discussI agree is unfair. The point of my benchmark was that the OP's claim "quad sort is faster than quicksort" is false.
zhangxp1998·6 anni fa·discussI looked at disassembly of generated binary, sure, function calls inside quad sort were also inlined.
zhangxp1998·6 anni fa·discussSee https://gist.github.com/zhangxp1998/0e2fa30656c894017d183e0d... for a comparison of quadsort with C++'s std::sort. The compare functions are inlined.
zhangxp1998·6 anni fa·discussqsort has to invoke your comparison function repeatedly, which incurs a lot of overhead. Try C++'s std::sort
zhangxp1998·7 anni fa·discussOkay, so you are comparing single-threaded GNU wc with your multi-threaded Go implementation? That's fair.