With btree 0.16 just released, time to record results of speed-test. On-disk:
num_operations: 1000000
insert : 389.370 s ( 2569.4/s) CPU; 390.356 s ( 2563.0/s) wall clock
lookup : 441.060 s ( 2268.2/s) CPU; 441.044 s ( 2268.3/s) wall clock
lookup_range: 492.200 s ( 2032.4/s) CPU; 492.180 s ( 2032.5/s) wall clock
insert2 : 748.100 s ( 1337.0/s) CPU; 748.703 s ( 1336.0/s) wall clock
remove : 786.870 s ( 1271.1/s) CPU; 787.393 s ( 1270.3/s) wall clock
remove_range: 255.700 s ( 3913.6/s) CPU; 255.981 s ( 3909.3/s) wall clock
In-memory:
num_operations: 1000000
insert : 75.390 s ( 13296.1/s) CPU; 75.392 s ( 13295.4/s) wall clock
lookup : 10.330 s ( 98522.2/s) CPU; 10.335 s ( 98452.4/s) wall clock
lookup_range: 40.860 s ( 24582.1/s) CPU; 40.862 s ( 24579.4/s) wall clock
insert2 : 84.090 s ( 11917.5/s) CPU; 84.098 s ( 11916.0/s) wall clock
remove : 97.160 s ( 10311.4/s) CPU; 97.417 s ( 10283.9/s) wall clock
remove_range: 111.050 s ( 9019.6/s) CPU; 111.104 s ( 9015.0/s) wall clock
And codec-speed:
leaf_size 10000 loops, best of 3: 76.2 usec per loop
encode_leaf 10000 loops, best of 3: 162 usec per loop
decode leaf 1000 loops, best of 3: 661 usec per loop
encode_index 10000 loops, best of 3: 100 usec per loop
decode index 1000 loops, best of 3: 618 usec per loop
Commentary:
- in-memory speeds are pretty nice!
- on-disk speeds are not too bad, but need to be sped up a lot