Member-only story

Python — Efficiency of sorting by multiple keys

Two simpler sorts can be faster than one more complex sort

Flutter Developer
3 min readOct 6, 2021

Here are benchmarks with a few more versions:

At length = 10,000 elements, multikey still beats multisort:

0.023 seconds  multisort                 (no previous result)
0.032 seconds multisort_tupled (same as previous result)
0.027 seconds multisort_tupled_gc_off (same as previous result)
0.015 seconds multisort_inplaced (same as previous result)
0.020 seconds multikey (same as previous result)
0.020 seconds multikey_gc_off (same as previous result)

At length = 100,000, it already fell a bit behind:

0.300 seconds  multisort                 (no previous result)
0.509 seconds multisort_tupled (same as previous result)
0.442 seconds multisort_tupled_gc_off (same as previous result)
0.237 seconds multisort_inplaced (same as previous result)
0.349 seconds multikey (same as previous result)
0.372 seconds multikey_gc_off (same as previous result)

At length = 2,000,000, it's twice as slow:

3.902 seconds  multisort                 (no previous result)
7.004 seconds multisort_tupled (same as previous result)
6.433 seconds multisort_tupled_gc_off (same as previous result)
3.745 seconds multisort_inplaced (same as previous result)
7.944 seconds multikey

--

--

Flutter Developer
Flutter Developer

Written by Flutter Developer

Flutter and Native Android developer

No responses yet