quicksort 50 million double point2d

quicksort implemented manually same algorithm on same data structures. Conformant are implementations in idiomatic code with same memory layout.

as run on google cloud n1-standard-2 (2 vCPUs, 7.5 GB memory) skylake cpu

tool time taken conforms? comment
clang 8 7.630 sec + ..
julia-1.2.0 7.810 sec + ..
gcc-8 8.244 sec + ..
rust 8.272 sec + ..
ldc-1.8.0/llvm5 8.460 sec + ..
.net core 3.0 unsafe 8.995 sec + ..
java-graaalvm-packed 9.308 sec this has memory layout like in C, but non-idiomatic coding
.net core 3.0 safe 9.508 sec + ..
gcc-go 8 10.035 sec + ..
java-valhalla 11.094 + Java with structs!
clang+graalvm 11.863 sec + LLVM bytecode interpreted by graalvm
fbc-1.07.1 13.230 sec + Free Basic, credits to @mabu
fpc-3.0.4 13.592 sec + Free Pascal

as run on my notebook; single user mode; single thread always caused 4-4.1 GHz.

tool time taken conforms? comment
julia-1.1.1 4.75 sec + ..
clang 8 4.81 sec + ..
gcc-9 4.93 sec + ..
rust 5.08 sec + ..
ldc-llvm8 5.16 sec + LLVM backend for D
.net core 2.2 unsafe 5.30 sec + ..
gcc-go 9.1.0 5.52 sec + ..
java-graaalvm-packed 5.62 sec this has memory layout like in C, but non-idiomatic coding
.net core 2.2 5.65 sec + compiled release mode, no mono
swift-5.0.2 5.76 sec + ..
go1.12.6 gccgo+10% + ..uninstalled it already due to conflict with gccgo
dmd-2.087 6.61 sec + canonical D
clang+graalvm 6.97 sec + LLVM bytecode interpreted by graalvm
fpc-3.0.4 8.34 sec + Free Pascal
java-graaalvm-onheap 14.4 sec this has different memory layout, but idiomatic approach