Y
Hacker News
new
|
ask
|
show
|
jobs
by
zhangxp1998
2325 days ago
qsort has to invoke your comparison function repeatedly, which incurs a lot of overhead. Try C++'s std::sort
2 comments
zhangxp1998
2325 days ago
See
https://gist.github.com/zhangxp1998/0e2fa30656c894017d183e0d...
for a comparison of quadsort with C++'s std::sort. The compare functions are inlined.
link
thedance
2325 days ago
Thanks for saving us the time. The punch line:
Summarize: Slower than std::sort except on random tail.
Also a very important tidbit that std::sort is 10x faster than c's qsort for ordered inputs.
link
alexchamberlain
2325 days ago
This feels a little unfair; the function is invoked the same number of times, but C++ has a mechanism for removing the overhead of calling a function (inlining).
link
zhangxp1998
2324 days ago
I looked at disassembly of generated binary, sure, function calls inside quad sort were also inlined.
link