FSharp.Collections Performance Metrics
FSharpx.DataStructures Performance Metrics
Performance Metrics accross Data Structures
Initial Data Performance
Initial Data Performance -- Actions: Init and new()
Size 1 - 10
Size:1 | Size:10 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best | Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best |
Core-Set | ArrayIntRnd | new() | - | - | Core-Set | ArrayIntRnd | new() | ||
Core-Set | ListIntRnd | new() | 2.4 | 2.4 | Core-Set | ListIntRnd | new() | 1.7 | 1.7 |
Core-Set | ListIntAsc | new() | 1.0 | 2.5 | Core-Set | ListIntAsc | new() | 1.0 | 1.8 |
Core-Set | ArrayIntAsc | new() | 1.1 | 2.8 | Core-Set | ArrayIntAsc | new() | 1.0 | 1.8 |
Core-Map | ArrayIntAsc | new() | 1.8 | 5.0 | Core-Map | ArrayIntRnd | new() | 1.6 | 3.0 |
Core-Map | ArrayIntRnd | new() | 1.0 | 5.1 | Core-Map | ArrayIntAsc | new() | 1.0 | 3.1 |
Core-List | ListIntAsc | Init | 1.2 | 6.3 | Core-List | ListIntAsc | Init | 1.0 | 3.1 |
Core-Map | ListIntRnd | new() | 1.0 | 6.4 | Core-Array | ArrayIntRnd | Init | 1.2 | 3.7 |
Core-Map | ListIntAsc | new() | 1.0 | 6.5 | Core-Map | ListIntAsc | new() | 1.0 | 3.7 |
Core-Array | ArrayIntRnd | Init | 1.2 | 7.7 | Core-Map | ListIntRnd | new() | 1.0 | 3.7 |
Core-List | ArrayIntRnd | Init | 1.1 | 8.7 | Core-List | ArrayIntRnd | Init | 1.1 | 4.3 |
Core-List | ArrayIntAsc | Init | 1.0 | 9.0 | Core-List | ArrayIntAsc | Init | 1.0 | 4.4 |
Core-Array | ListStringAsc | Init | 1.1 | 10.0 | Core-Array | ListStringRnd | Init | 1.1 | 4.9 |
Core-Array | ListStringRnd | Init | 1.0 | 10.0 | Core-List | ArrayStringAsc | Init | 1.0 | 5.0 |
Core-List | ArrayStringAsc | Init | 1.0 | 10.1 | Core-Array | ListStringAsc | Init | 1.0 | 5.0 |
Core-List | ArrayStringRnd | Init | 1.0 | 10.2 | Core-List | ArrayStringRnd | Init | 1.0 | 5.0 |
Core-List | ListStringAsc | Init | 1.2 | 11.9 | Core-List | ListStringAsc | Init | 1.2 | 5.9 |
Core-Array | ArrayStringRnd | Init | 1.1 | 12.6 | Core-Array | ArrayStringAsc | Init | 1.1 | 6.3 |
Core-Array | ArrayStringAsc | Init | 1.0 | 12.7 | Core-Array | ArrayStringRnd | Init | 1.0 | 6.4 |
Core-Set | ListIntRnd | Init | 1.3 | 16.2 | Core-Set | ListIntRnd | Init | 1.3 | 8.5 |
Core-Set | ListIntAsc | Init | 1.0 | 16.8 | Core-Set | ListIntAsc | Init | 1.0 | 8.8 |
Core-Array | ArrayIntAsc | Init | 1.1 | 18.8 | Core-Array | ArrayIntAsc | Init | 1.0 | 9.3 |
Core-Array | ListIntAsc | Init | 1.6 | 30.2 | Core-Array | ListIntAsc | Init | 1.6 | 15.0 |
Naive-Stack | ArrayIntAsc | Init | 1.4 | 42.4 | Naive-Stack | ArrayStringRnd | Init | 1.3 | 19.9 |
Naive-Stack | ArrayStringRnd | Init | 1.1 | 48.5 | Naive-Stack | ArrayStringAsc | Init | 1.0 | 19.9 |
Naive-Stack | ArrayStringAsc | Init | 1.0 | 48.5 | Naive-Stack | ArrayIntAsc | Init | 1.1 | 21.0 |
Core-Set | ArrayIntRnd | Init | 1.1 | 51.9 | Core-Set | ArrayIntRnd | Init | 1.2 | 25.7 |
Core-Set | ArrayIntAsc | Init | 1.0 | 52.4 | Core-Set | ArrayIntAsc | Init | 1.0 | 26.4 |
Core-Set | ListStringAsc | new() | 1.0 | 53.4 | Core-Map | ListIntRnd | Init | 1.1 | 28.4 |
Core-Set | ListStringRnd | new() | 1.0 | 53.6 | Core-Set | ListStringRnd | new() | 1.0 | 28.6 |
Core-Set | ArrayStringAsc | new() | 1.0 | 53.9 | Core-Set | ArrayStringAsc | new() | 1.0 | 28.7 |
Core-Set | ArrayStringRnd | new() | 1.0 | 54.2 | Core-Set | ArrayStringRnd | new() | 1.0 | 28.8 |
Core-Map | ArrayStringAsc | new() | 1.0 | 54.9 | Core-Set | ListStringAsc | new() | 1.0 | 29.0 |
Core-Map | ArrayStringRnd | new() | 1.0 | 55.3 | Core-Map | ArrayStringRnd | new() | 1.0 | 29.2 |
Core-Map | ListIntRnd | Init | 1.0 | 56.8 | Core-Map | ListIntAsc | Init | 1.0 | 29.2 |
Core-Map | ListIntAsc | Init | 1.0 | 58.2 | Core-Map | ArrayStringAsc | new() | 1.0 | 29.4 |
Core-Map | ArrayStringRnd | Init | 1.0 | 59.0 | Naive-Stack | ListIntRnd | Init | 1.0 | 30.5 |
Core-Map | ArrayStringAsc | Init | 1.0 | 59.1 | Core-Map | ArrayStringRnd | Init | 1.0 | 31.2 |
Core-Map | ListStringRnd | new() | 1.1 | 62.3 | Core-Map | ArrayStringAsc | Init | 1.0 | 31.7 |
Core-Set | ArrayStringAsc | Init | 1.0 | 62.5 | PowerPack-LazyList | ArrayIntAsc | Init | 1.0 | 32.6 |
Core-Set | ListStringRnd | Init | 1.0 | 62.8 | Core-Set | ListStringRnd | Init | 1.0 | 32.8 |
Core-Set | ListStringAsc | Init | 1.0 | 63.0 | Naive-Stack | ListIntAsc | Init | 1.0 | 32.8 |
Core-Set | ArrayStringRnd | Init | 1.0 | 63.2 | Core-Map | ListStringRnd | new() | 1.0 | 32.8 |
Naive-Stack | ListIntRnd | Init | 1.0 | 63.3 | Core-Set | ListStringAsc | Init | 1.0 | 33.0 |
Core-Map | ListStringAsc | new() | 1.0 | 65.1 | Core-Set | ArrayStringAsc | Init | 1.0 | 33.1 |
PowerPack-LazyList | ArrayIntAsc | Init | 1.0 | 65.7 | Core-Set | ArrayStringRnd | Init | 1.0 | 33.2 |
Core-Map | ListStringRnd | Init | 1.0 | 65.9 | Core-Map | ListStringAsc | new() | 1.0 | 34.4 |
Core-Map | ListStringAsc | Init | 1.0 | 66.0 | Core-Map | ListStringRnd | Init | 1.0 | 34.6 |
Naive-Stack | ListIntAsc | Init | 1.0 | 66.1 | Core-Map | ListStringAsc | Init | 1.0 | 35.0 |
PowerPack-LazyList | ListIntAsc | Init | 1.1 | 74.3 | Naive-Stack | ListStringRnd | Init | 1.0 | 36.7 |
Naive-Stack | ListStringRnd | Init | 1.1 | 82.1 | Naive-Stack | ListStringAsc | Init | 1.0 | 36.8 |
Naive-Stack | ListStringAsc | Init | 1.0 | 82.2 | PowerPack-LazyList | ListIntAsc | Init | 1.0 | 37.1 |
PowerPack-LazyList | ListStringAsc | Init | 1.1 | 93.1 | PowerPack-LazyList | ListStringAsc | Init | 1.2 | 46.0 |
PowerPack-LazyList | ArrayStringAsc | Init | 1.1 | 104.3 | PowerPack-LazyList | ArrayStringAsc | Init | 1.1 | 51.6 |
Core-Map | ArrayIntRnd | Init | 1.1 | 118.3 | Core-Map | ArrayIntRnd | Init | 1.2 | 60.7 |
Core-Map | ArrayIntAsc | Init | 1.0 | 122.9 | Core-Map | ArrayIntAsc | Init | 1.0 | 61.5 |
FSharpx-BootstrappedQueue | ListIntAsc | Init | 1.1 | 136.0 | FSharpx-BootstrappedQueue | ListIntAsc | Init | 1.1 | 67.2 |
FSharpx-BootstrappedQueue | ListStringAsc | Init | 1.1 | 144.4 | FSharpx-BootstrappedQueue | ListStringAsc | Init | 1.1 | 71.7 |
FSharpx-BootstrappedQueue | ArrayStringAsc | Init | 1.1 | 152.7 | FSharpx-BootstrappedQueue | ArrayStringAsc | Init | 1.1 | 75.4 |
FSharpx-BootstrappedQueue | ArrayStringRnd | Init | 1.0 | 153.3 | FSharpx-BootstrappedQueue | ArrayStringRnd | Init | 1.0 | 75.7 |
FSharpx-BootstrappedQueue | ArrayIntAsc | Init | 1.1 | 168.0 | FSharpx-BootstrappedQueue | ArrayIntAsc | Init | 1.1 | 83.1 |
FSharpx-DList | ArrayStringRnd | Init | 1.5 | 257.0 | FSharpx-DList | ArrayIntRnd | Init | 1.5 | 128.0 |
FSharpx-DList | ArrayStringAsc | Init | 1.0 | 257.4 | FSharpx-DList | ListIntAsc | Init | 1.0 | 129.9 |
FSharpx-DList | ListStringAsc | Init | 1.0 | 258.2 | FSharpx-DList | ArrayIntAsc | Init | 1.0 | 130.3 |
FSharpx-DList | ArrayIntRnd | Init | 1.0 | 259.1 | FSharpx-DList | ArrayStringRnd | Init | 1.0 | 131.1 |
FSharpx-DList | ListIntAsc | Init | 1.0 | 263.3 | FSharpx-DList | ListStringAsc | Init | 1.0 | 132.4 |
FSharpx-DList | ArrayIntAsc | Init | 1.0 | 265.3 | FSharpx-DList | ArrayStringAsc | Init | 1.0 | 132.7 |
FSharpx-PersistentVector | ListIntAsc | Init | 1.0 | 271.0 | FSharpx-PersistentVector | ListIntAsc | Init | 1.0 | 134.1 |
FSharpx-PersistentVector | ArrayIntAsc | Init | 1.0 | 272.5 | FSharpx-PersistentVector | ArrayIntAsc | Init | 1.0 | 134.9 |
FSharpx-PersistentVector | ListStringRnd | Init | 1.0 | 278.1 | FSharpx-PersistentVector | ArrayStringRnd | Init | 1.0 | 137.9 |
FSharpx-PersistentVector | ArrayStringRnd | Init | 1.0 | 279.7 | FSharpx-PersistentVector | ListStringRnd | Init | 1.0 | 140.0 |
FSharpx-PersistentVector | ListStringAsc | Init | 1.0 | 282.3 | FSharpx-PersistentVector | ArrayStringAsc | Init | 1.0 | 140.4 |
FSharpx-PersistentVector | ArrayStringAsc | Init | 1.0 | 282.5 | FSharpx-PersistentVector | ListStringAsc | Init | 1.0 | 140.4 |
PowerPack-HashMultiMap | ArrayIntRnd | new() | 1.2 | 349.0 | PowerPack-HashMultiMap | ListIntRnd | new() | 1.2 | 171.1 |
PowerPack-HashMultiMap | ListIntRnd | new() | 1.0 | 349.2 | PowerPack-HashMultiMap | ListIntAsc | new() | 1.0 | 173.1 |
PowerPack-HashMultiMap | ListIntAsc | new() | 1.0 | 350.3 | PowerPack-HashMultiMap | ArrayIntRnd | new() | 1.0 | 173.7 |
PowerPack-HashMultiMap | ArrayIntAsc | new() | 1.0 | 356.6 | PowerPack-HashMultiMap | ArrayIntAsc | new() | 1.0 | 175.2 |
PowerPack-HashMultiMap | ListStringRnd | new() | 1.0 | 372.1 | PowerPack-HashMultiMap | ListStringRnd | new() | 1.0 | 183.4 |
PowerPack-HashMultiMap | ArrayStringRnd | new() | 1.0 | 374.2 | PowerPack-HashMultiMap | ArrayStringRnd | new() | 1.0 | 185.9 |
PowerPack-HashMultiMap | ArrayStringAsc | new() | 1.0 | 374.6 | PowerPack-HashMultiMap | ListStringAsc | new() | 1.0 | 186.6 |
PowerPack-HashMultiMap | ListStringAsc | new() | 1.0 | 377.3 | PowerPack-HashMultiMap | ArrayStringAsc | new() | 1.0 | 187.5 |
Size 100 - 1,000
Size:100 | Size:1,000 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best | Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best |
Core-Set | ArrayIntRnd | new() | Core-List | ListIntAsc | Init | ||||
Core-List | ListIntAsc | Init | 1.1 | 1.1 | Core-Array | ArrayIntRnd | Init | 1.2 | 1.2 |
Core-Set | ListIntRnd | new() | 1.1 | 1.2 | Core-List | ArrayIntRnd | Init | 1.2 | 1.5 |
Core-Set | ListIntAsc | new() | 1.0 | 1.3 | Core-List | ArrayIntAsc | Init | 1.0 | 1.5 |
Core-Set | ArrayIntAsc | new() | 1.0 | 1.3 | Core-List | ArrayStringAsc | Init | 1.1 | 1.7 |
Core-Array | ArrayIntRnd | Init | 1.0 | 1.3 | Core-Array | ListStringAsc | Init | 1.0 | 1.7 |
Core-List | ArrayIntRnd | Init | 1.1 | 1.5 | Core-List | ArrayStringRnd | Init | 1.0 | 1.8 |
Core-List | ArrayIntAsc | Init | 1.0 | 1.6 | Core-List | ListStringAsc | Init | 1.1 | 1.8 |
Core-Map | ArrayIntRnd | new() | 1.1 | 1.7 | Core-Array | ListStringRnd | Init | 1.0 | 1.9 |
Core-Map | ArrayIntAsc | new() | 1.0 | 1.7 | Core-Array | ArrayStringRnd | Init | 1.0 | 1.9 |
Core-List | ArrayStringAsc | Init | 1.0 | 1.8 | Core-Array | ArrayStringAsc | Init | 1.0 | 2.0 |
Core-List | ArrayStringRnd | Init | 1.0 | 1.8 | Core-Array | ArrayIntAsc | Init | 1.5 | 2.9 |
Core-Array | ListStringAsc | Init | 1.0 | 1.8 | Core-Array | ListIntAsc | Init | 1.6 | 4.7 |
Core-Array | ListStringRnd | Init | 1.0 | 1.8 | Naive-Stack | ArrayStringAsc | Init | 1.3 | 6.3 |
Core-Map | ListIntRnd | new() | 1.1 | 2.1 | Naive-Stack | ArrayStringRnd | Init | 1.0 | 6.4 |
Core-List | ListStringAsc | Init | 1.0 | 2.1 | Naive-Stack | ArrayIntAsc | Init | 1.0 | 6.7 |
Core-Map | ListIntAsc | new() | 1.0 | 2.1 | Core-Set | ArrayIntRnd | new() | 1.4 | 9.2 |
Core-Array | ArrayStringRnd | Init | 1.1 | 2.2 | Naive-Stack | ListIntRnd | Init | 1.0 | 9.5 |
Core-Array | ArrayStringAsc | Init | 1.0 | 2.2 | Core-Set | ArrayIntAsc | new() | 1.0 | 9.7 |
Core-Array | ArrayIntAsc | Init | 1.5 | 3.3 | Core-Set | ListIntAsc | new() | 1.0 | 9.7 |
Core-Set | ListIntRnd | Init | 1.1 | 3.7 | Core-Set | ListIntRnd | new() | 1.0 | 10.0 |
Core-Set | ListIntAsc | Init | 1.0 | 3.8 | Core-Map | ArrayIntRnd | new() | 1.0 | 10.1 |
Core-Array | ListIntAsc | Init | 1.4 | 5.4 | PowerPack-LazyList | ArrayIntAsc | Init | 1.0 | 10.1 |
Naive-Stack | ArrayStringAsc | Init | 1.3 | 7.1 | Core-Map | ArrayIntAsc | new() | 1.0 | 10.1 |
Naive-Stack | ArrayStringRnd | Init | 1.0 | 7.1 | Naive-Stack | ListIntAsc | Init | 1.0 | 10.3 |
Naive-Stack | ArrayIntAsc | Init | 1.1 | 7.5 | PowerPack-LazyList | ListIntAsc | Init | 1.1 | 11.5 |
Core-Set | ArrayIntRnd | Init | 1.3 | 9.9 | Naive-Stack | ListStringRnd | Init | 1.0 | 11.6 |
Core-Set | ArrayIntAsc | Init | 1.0 | 10.2 | Core-Map | ListIntRnd | new() | 1.0 | 11.9 |
Core-Map | ListIntRnd | Init | 1.1 | 10.8 | Core-Set | ListIntRnd | Init | 1.0 | 11.9 |
Naive-Stack | ListIntRnd | Init | 1.0 | 10.8 | Core-Set | ListIntAsc | Init | 1.0 | 11.9 |
Core-Map | ListIntAsc | Init | 1.0 | 11.1 | Core-Map | ListIntAsc | new() | 1.0 | 12.0 |
Naive-Stack | ListIntAsc | Init | 1.0 | 11.2 | Naive-Stack | ListStringAsc | Init | 1.0 | 12.2 |
Core-Set | ArrayStringRnd | new() | 1.0 | 11.3 | PowerPack-LazyList | ListStringAsc | Init | 1.2 | 14.4 |
Core-Set | ListStringAsc | new() | 1.0 | 11.4 | PowerPack-LazyList | ArrayStringAsc | Init | 1.1 | 16.1 |
Core-Set | ArrayStringAsc | new() | 1.0 | 11.4 | Core-Set | ArrayIntRnd | Init | 1.1 | 18.5 |
Core-Set | ListStringRnd | new() | 1.0 | 11.4 | Core-Set | ArrayIntAsc | Init | 1.0 | 19.0 |
Core-Map | ArrayStringRnd | new() | 1.0 | 11.6 | Core-Map | ListIntRnd | Init | 1.0 | 19.5 |
PowerPack-LazyList | ArrayIntAsc | Init | 1.0 | 11.6 | Core-Map | ListIntAsc | Init | 1.0 | 19.8 |
Core-Map | ArrayStringAsc | new() | 1.0 | 11.6 | FSharpx-BootstrappedQueue | ListIntAsc | Init | 1.1 | 21.0 |
Core-Map | ArrayStringRnd | Init | 1.0 | 12.2 | Core-Set | ArrayStringRnd | new() | 1.1 | 23.0 |
Core-Map | ArrayStringAsc | Init | 1.0 | 12.4 | FSharpx-BootstrappedQueue | ListStringAsc | Init | 1.0 | 23.4 |
Core-Set | ListStringRnd | Init | 1.0 | 12.8 | Core-Set | ListStringRnd | new() | 1.0 | 23.7 |
Core-Set | ArrayStringRnd | Init | 1.0 | 12.9 | Core-Set | ArrayStringAsc | new() | 1.0 | 23.8 |
Core-Set | ListStringAsc | Init | 1.0 | 13.0 | FSharpx-BootstrappedQueue | ArrayStringAsc | Init | 1.0 | 23.9 |
Core-Set | ArrayStringAsc | Init | 1.0 | 13.0 | FSharpx-BootstrappedQueue | ArrayStringRnd | Init | 1.0 | 23.9 |
Naive-Stack | ListStringRnd | Init | 1.0 | 13.1 | Core-Set | ListStringAsc | new() | 1.0 | 24.5 |
Naive-Stack | ListStringAsc | Init | 1.0 | 13.1 | Core-Set | ListStringRnd | Init | 1.0 | 24.6 |
Core-Map | ListStringAsc | new() | 1.0 | 13.2 | Core-Map | ArrayStringRnd | new() | 1.0 | 24.9 |
PowerPack-LazyList | ListIntAsc | Init | 1.0 | 13.3 | Core-Set | ArrayStringRnd | Init | 1.0 | 25.2 |
Core-Map | ListStringRnd | new() | 1.0 | 13.4 | Core-Map | ArrayStringAsc | new() | 1.0 | 25.5 |
Core-Map | ListStringRnd | Init | 1.0 | 13.6 | Core-Set | ListStringAsc | Init | 1.0 | 25.6 |
Core-Map | ListStringAsc | Init | 1.0 | 14.0 | Core-Map | ArrayStringRnd | Init | 1.0 | 25.8 |
PowerPack-LazyList | ListStringAsc | Init | 1.2 | 16.4 | FSharpx-BootstrappedQueue | ArrayIntAsc | Init | 1.0 | 26.0 |
PowerPack-LazyList | ArrayStringAsc | Init | 1.1 | 18.4 | Core-Set | ArrayStringAsc | Init | 1.0 | 26.2 |
Core-Map | ArrayIntRnd | Init | 1.2 | 21.9 | Core-Map | ArrayStringAsc | Init | 1.0 | 26.2 |
Core-Map | ArrayIntAsc | Init | 1.0 | 22.7 | Core-Map | ListStringRnd | new() | 1.0 | 26.4 |
FSharpx-BootstrappedQueue | ListIntAsc | Init | 1.1 | 24.0 | Core-Map | ListStringRnd | Init | 1.0 | 27.4 |
FSharpx-BootstrappedQueue | ListStringAsc | Init | 1.1 | 25.7 | Core-Map | ArrayIntRnd | Init | 1.0 | 27.6 |
FSharpx-BootstrappedQueue | ArrayStringRnd | Init | 1.1 | 27.0 | Core-Map | ListStringAsc | new() | 1.0 | 27.8 |
FSharpx-BootstrappedQueue | ArrayStringAsc | Init | 1.0 | 27.1 | Core-Map | ListStringAsc | Init | 1.0 | 28.4 |
FSharpx-BootstrappedQueue | ArrayIntAsc | Init | 1.1 | 29.7 | Core-Map | ArrayIntAsc | Init | 1.0 | 28.4 |
FSharpx-DList | ArrayIntRnd | Init | 1.5 | 45.0 | FSharpx-DList | ArrayIntRnd | Init | 1.4 | 39.9 |
FSharpx-DList | ListIntAsc | Init | 1.0 | 46.5 | FSharpx-DList | ArrayIntAsc | Init | 1.0 | 41.2 |
FSharpx-DList | ArrayIntAsc | Init | 1.0 | 46.7 | FSharpx-DList | ListIntAsc | Init | 1.0 | 41.3 |
FSharpx-DList | ArrayStringRnd | Init | 1.0 | 47.2 | FSharpx-DList | ListStringAsc | Init | 1.0 | 42.0 |
FSharpx-DList | ListStringAsc | Init | 1.0 | 47.4 | FSharpx-DList | ArrayStringRnd | Init | 1.0 | 42.6 |
FSharpx-DList | ArrayStringAsc | Init | 1.0 | 47.6 | FSharpx-DList | ArrayStringAsc | Init | 1.0 | 42.8 |
FSharpx-PersistentVector | ListIntAsc | Init | 1.1 | 54.0 | FSharpx-PersistentVector | ListIntAsc | Init | 1.1 | 48.7 |
FSharpx-PersistentVector | ArrayIntAsc | Init | 1.0 | 54.1 | FSharpx-PersistentVector | ArrayIntAsc | Init | 1.0 | 48.9 |
FSharpx-PersistentVector | ListStringAsc | Init | 1.0 | 55.9 | FSharpx-PersistentVector | ListStringAsc | Init | 1.0 | 50.0 |
FSharpx-PersistentVector | ListStringRnd | Init | 1.0 | 55.9 | FSharpx-PersistentVector | ListStringRnd | Init | 1.0 | 50.8 |
FSharpx-PersistentVector | ArrayStringAsc | Init | 1.0 | 56.1 | FSharpx-PersistentVector | ArrayStringAsc | Init | 1.0 | 50.9 |
FSharpx-PersistentVector | ArrayStringRnd | Init | 1.0 | 56.1 | FSharpx-PersistentVector | ArrayStringRnd | Init | 1.0 | 51.2 |
PowerPack-HashMultiMap | ListIntRnd | new() | 1.1 | 61.4 | PowerPack-HashMultiMap | ArrayIntRnd | new() | 1.1 | 56.4 |
PowerPack-HashMultiMap | ArrayIntRnd | new() | 1.0 | 62.3 | PowerPack-HashMultiMap | ListIntAsc | new() | 1.0 | 56.8 |
PowerPack-HashMultiMap | ListIntAsc | new() | 1.0 | 62.3 | PowerPack-HashMultiMap | ListIntRnd | new() | 1.0 | 57.0 |
PowerPack-HashMultiMap | ArrayIntAsc | new() | 1.0 | 63.3 | PowerPack-HashMultiMap | ArrayIntAsc | new() | 1.0 | 57.8 |
PowerPack-HashMultiMap | ListStringRnd | new() | 1.1 | 66.8 | PowerPack-HashMultiMap | ListStringAsc | new() | 1.1 | 61.7 |
PowerPack-HashMultiMap | ArrayStringRnd | new() | 1.0 | 66.8 | PowerPack-HashMultiMap | ListStringRnd | new() | 1.0 | 61.9 |
PowerPack-HashMultiMap | ListStringAsc | new() | 1.0 | 67.0 | PowerPack-HashMultiMap | ArrayStringRnd | new() | 1.0 | 62.1 |
PowerPack-HashMultiMap | ArrayStringAsc | new() | 1.0 | 67.6 | PowerPack-HashMultiMap | ArrayStringAsc | new() | 1.0 | 62.2 |
Size 10,000 - 100,000
Size:10,000 | Size:100,000 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best | Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best |
Core-List | ListIntAsc | Init | Core-List | ListIntAsc | Init | ||||
Core-Array | ArrayIntRnd | Init | 1.3 | 1.3 | Core-List | ListStringAsc | Init | 1.7 | 1.7 |
Core-List | ListStringAsc | Init | 1.4 | 1.8 | Core-Array | ArrayStringRnd | Init | 2.5 | 4.2 |
Core-Array | ArrayStringAsc | Init | 1.1 | 2.0 | Core-Array | ArrayIntRnd | Init | 1.1 | 4.7 |
Core-Array | ArrayStringRnd | Init | 1.0 | 2.0 | Core-Array | ArrayStringAsc | Init | 1.2 | 5.6 |
Core-List | ArrayIntRnd | Init | 1.1 | 2.3 | Core-Array | ArrayIntAsc | Init | 1.2 | 6.4 |
Core-List | ArrayIntAsc | Init | 1.2 | 2.7 | PowerPack-LazyList | ArrayIntAsc | Init | 1.5 | 9.8 |
Core-List | ArrayStringRnd | Init | 1.1 | 3.0 | PowerPack-LazyList | ListIntAsc | Init | 1.1 | 10.7 |
Core-List | ArrayStringAsc | Init | 1.0 | 3.0 | Core-Array | ListIntAsc | Init | 1.0 | 11.1 |
Core-Array | ArrayIntAsc | Init | 1.0 | 3.1 | PowerPack-LazyList | ListStringAsc | Init | 1.2 | 13.0 |
Core-Array | ListStringAsc | Init | 1.0 | 3.2 | PowerPack-LazyList | ArrayStringAsc | Init | 1.1 | 14.7 |
Core-Array | ListStringRnd | Init | 1.6 | 5.2 | Core-List | ArrayStringAsc | Init | 1.0 | 15.1 |
Core-Array | ListIntAsc | Init | 1.0 | 5.3 | Naive-Stack | ListIntAsc | Init | 1.1 | 16.9 |
Naive-Stack | ArrayIntAsc | Init | 1.5 | 7.8 | Naive-Stack | ListIntRnd | Init | 1.0 | 17.0 |
Naive-Stack | ArrayStringAsc | Init | 1.0 | 7.8 | Core-List | ArrayIntRnd | Init | 1.1 | 18.7 |
Naive-Stack | ArrayStringRnd | Init | 1.0 | 7.9 | Core-Array | ListStringAsc | Init | 1.0 | 18.9 |
PowerPack-LazyList | ArrayIntAsc | Init | 1.3 | 10.0 | Core-List | ArrayIntAsc | Init | 1.0 | 19.3 |
Naive-Stack | ListIntRnd | Init | 1.0 | 10.3 | Naive-Stack | ArrayStringAsc | Init | 1.1 | 21.8 |
Naive-Stack | ListIntAsc | Init | 1.1 | 10.8 | FSharpx-BootstrappedQueue | ListIntAsc | Init | 1.0 | 21.9 |
PowerPack-LazyList | ListIntAsc | Init | 1.1 | 11.4 | Naive-Stack | ArrayIntAsc | Init | 1.1 | 23.4 |
Naive-Stack | ListStringRnd | Init | 1.1 | 13.1 | FSharpx-BootstrappedQueue | ListStringAsc | Init | 1.0 | 24.5 |
Naive-Stack | ListStringAsc | Init | 1.0 | 13.7 | Naive-Stack | ListStringAsc | Init | 1.1 | 26.7 |
PowerPack-LazyList | ListStringAsc | Init | 1.0 | 14.2 | Naive-Stack | ListStringRnd | Init | 1.0 | 27.8 |
PowerPack-LazyList | ArrayStringAsc | Init | 1.1 | 16.2 | FSharpx-BootstrappedQueue | ArrayStringAsc | Init | 1.4 | 38.6 |
FSharpx-BootstrappedQueue | ListIntAsc | Init | 1.3 | 21.9 | Core-Array | ListStringRnd | Init | 1.0 | 40.3 |
FSharpx-BootstrappedQueue | ListStringAsc | Init | 1.1 | 23.6 | FSharpx-BootstrappedQueue | ArrayIntAsc | Init | 1.1 | 44.1 |
FSharpx-BootstrappedQueue | ArrayStringRnd | Init | 1.1 | 25.7 | FSharpx-DList | ArrayIntRnd | Init | 2.1 | 94.7 |
FSharpx-BootstrappedQueue | ArrayStringAsc | Init | 1.0 | 25.7 | FSharpx-DList | ArrayIntAsc | Init | 1.0 | 96.1 |
FSharpx-BootstrappedQueue | ArrayIntAsc | Init | 1.1 | 27.1 | FSharpx-DList | ListIntAsc | Init | 1.0 | 96.5 |
FSharpx-DList | ArrayIntRnd | Init | 1.7 | 45.2 | FSharpx-DList | ArrayStringAsc | Init | 1.5 | 147.7 |
FSharpx-DList | ArrayIntAsc | Init | 1.0 | 46.8 | FSharpx-DList | ListStringAsc | Init | 1.0 | 148.9 |
FSharpx-DList | ListIntAsc | Init | 1.0 | 47.0 | Core-List | ArrayStringRnd | Init | 1.0 | 153.3 |
FSharpx-DList | ListStringAsc | Init | 1.1 | 52.6 | Naive-Stack | ArrayStringRnd | Init | 1.0 | 158.5 |
FSharpx-DList | ArrayStringAsc | Init | 1.0 | 52.6 | FSharpx-BootstrappedQueue | ArrayStringRnd | Init | 1.1 | 178.0 |
FSharpx-DList | ArrayStringRnd | Init | 1.0 | 52.8 | FSharpx-PersistentVector | ListIntAsc | Init | 1.1 | 196.8 |
FSharpx-PersistentVector | ListIntAsc | Init | 1.2 | 64.8 | FSharpx-PersistentVector | ArrayStringAsc | Init | 1.0 | 199.1 |
FSharpx-PersistentVector | ArrayIntAsc | Init | 1.0 | 65.1 | FSharpx-PersistentVector | ArrayIntAsc | Init | 1.0 | 199.4 |
FSharpx-PersistentVector | ListStringAsc | Init | 1.0 | 66.5 | FSharpx-PersistentVector | ListStringAsc | Init | 1.1 | 212.2 |
FSharpx-PersistentVector | ArrayStringAsc | Init | 1.0 | 66.9 | FSharpx-PersistentVector | ArrayStringRnd | Init | 1.2 | 258.3 |
FSharpx-PersistentVector | ListStringRnd | Init | 1.1 | 72.4 | FSharpx-PersistentVector | ListStringRnd | Init | 1.0 | 263.8 |
FSharpx-PersistentVector | ArrayStringRnd | Init | 1.0 | 73.4 | FSharpx-DList | ArrayStringRnd | Init | 1.0 | 275.3 |
PowerPack-HashMultiMap | ListIntAsc | new() | 1.1 | 79.9 | PowerPack-HashMultiMap | ArrayIntAsc | new() | 1.2 | 340.5 |
PowerPack-HashMultiMap | ArrayIntAsc | new() | 1.0 | 81.2 | PowerPack-HashMultiMap | ListIntAsc | new() | 1.2 | 408.7 |
PowerPack-HashMultiMap | ArrayIntRnd | new() | 1.0 | 82.2 | PowerPack-HashMultiMap | ArrayIntRnd | new() | 1.0 | 414.9 |
PowerPack-HashMultiMap | ListIntRnd | new() | 1.0 | 83.4 | PowerPack-HashMultiMap | ArrayStringAsc | new() | 1.0 | 429.5 |
PowerPack-HashMultiMap | ListStringAsc | new() | 1.1 | 94.7 | PowerPack-HashMultiMap | ListIntRnd | new() | 1.1 | 452.2 |
PowerPack-HashMultiMap | ArrayStringAsc | new() | 1.0 | 95.7 | PowerPack-HashMultiMap | ListStringAsc | new() | 1.1 | 478.5 |
PowerPack-HashMultiMap | ListStringRnd | new() | 1.0 | 99.4 | PowerPack-HashMultiMap | ArrayStringRnd | new() | 1.3 | 605.3 |
PowerPack-HashMultiMap | ArrayStringRnd | new() | 1.0 | 100.3 | PowerPack-HashMultiMap | ListStringRnd | new() | 1.0 | 606.8 |
Core-Set | ListIntAsc | new() | 1.3 | 125.7 | Core-Set | ArrayIntAsc | new() | 2.7 | 1625.8 |
Core-Set | ListIntAsc | Init | 1.0 | 128.2 | Core-Set | ArrayIntAsc | Init | 1.0 | 1659.4 |
Core-Set | ListIntRnd | new() | 1.0 | 130.6 | Core-Map | ArrayIntAsc | new() | 1.0 | 1714.3 |
Core-Set | ListIntRnd | Init | 1.0 | 132.5 | Core-Map | ArrayIntAsc | Init | 1.0 | 1725.6 |
Core-Map | ArrayIntRnd | new() | 1.0 | 134.7 | Core-Map | ListIntAsc | Init | 1.0 | 1744.2 |
Core-Set | ArrayIntAsc | new() | 1.0 | 139.1 | Core-Map | ListIntAsc | new() | 1.0 | 1751.5 |
Core-Map | ListIntAsc | new() | 1.0 | 141.2 | Core-Set | ListIntAsc | new() | 1.0 | 1794.2 |
Core-Map | ListIntRnd | new() | 1.0 | 147.2 | Core-Set | ListIntAsc | Init | 1.0 | 1794.4 |
Core-Map | ListIntAsc | Init | 1.0 | 150.0 | Core-Set | ArrayIntRnd | new() | 1.3 | 2393.6 |
Core-Map | ArrayIntRnd | Init | 1.0 | 151.8 | Core-Set | ArrayIntRnd | Init | 1.0 | 2419.8 |
Core-Map | ListIntRnd | Init | 1.0 | 152.6 | Core-Set | ListIntRnd | new() | 1.0 | 2427.2 |
Core-Set | ArrayIntAsc | Init | 1.0 | 154.7 | Core-Set | ListIntRnd | Init | 1.0 | 2433.8 |
Core-Set | ArrayIntRnd | new() | 1.0 | 155.5 | Core-Map | ArrayIntRnd | new() | 1.1 | 2574.5 |
Core-Map | ArrayIntAsc | new() | 1.0 | 157.1 | Core-Map | ArrayIntRnd | Init | 1.0 | 2595.3 |
Core-Map | ArrayIntAsc | Init | 1.1 | 174.2 | Core-Map | ListIntRnd | new() | 1.0 | 2648.3 |
Core-Set | ArrayIntRnd | Init | 1.0 | 174.9 | Core-Map | ListIntRnd | Init | 1.0 | 2673.9 |
Core-Set | ListStringAsc | new() | 1.2 | 214.0 | Core-Set | ListStringAsc | Init | 1.0 | 2693.8 |
Core-Set | ListStringAsc | Init | 1.0 | 215.2 | Core-Set | ListStringAsc | new() | 1.0 | 2711.2 |
Core-Set | ArrayStringAsc | new() | 1.0 | 215.3 | Core-Set | ArrayStringAsc | new() | 1.0 | 2758.0 |
Core-Set | ArrayStringAsc | Init | 1.0 | 225.4 | Core-Set | ArrayStringAsc | Init | 1.0 | 2782.6 |
Core-Map | ArrayStringAsc | Init | 1.0 | 229.2 | Core-Map | ListStringAsc | new() | 1.0 | 2891.4 |
Core-Map | ArrayStringAsc | new() | 1.0 | 230.6 | Core-Map | ListStringAsc | Init | 1.0 | 2926.5 |
Core-Set | ArrayStringRnd | new() | 1.0 | 238.3 | Core-Map | ArrayStringAsc | Init | 1.0 | 3009.0 |
Core-Map | ListStringAsc | new() | 1.0 | 238.5 | Core-Map | ArrayStringAsc | new() | 1.0 | 3014.6 |
Core-Map | ListStringAsc | Init | 1.0 | 239.7 | Core-Set | ListStringRnd | Init | 1.3 | 3909.5 |
Core-Set | ListStringRnd | new() | 1.0 | 241.7 | Core-Set | ListStringRnd | new() | 1.0 | 3911.0 |
Core-Set | ListStringRnd | Init | 1.0 | 242.9 | Core-Set | ArrayStringRnd | new() | 1.0 | 3937.0 |
Core-Set | ArrayStringRnd | Init | 1.0 | 245.7 | Core-Set | ArrayStringRnd | Init | 1.0 | 3953.9 |
Core-Map | ArrayStringRnd | new() | 1.1 | 266.3 | Core-Map | ArrayStringRnd | new() | 1.1 | 4290.6 |
Core-Map | ArrayStringRnd | Init | 1.0 | 267.5 | Core-Map | ArrayStringRnd | Init | 1.0 | 4301.2 |
Core-Map | ListStringRnd | new() | 1.0 | 272.4 | Core-Map | ListStringRnd | new() | 1.0 | 4477.1 |
Core-Map | ListStringRnd | Init | 1.0 | 272.8 | Core-Map | ListStringRnd | Init | 1.0 | 4487.0 |
Size 1,000,000
Size:1,000,000 | ||||
---|---|---|---|---|
Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best |
Core-List | ListIntAsc | Init | ||
Core-List | ListStringAsc | Init | 1.7 | 1.7 |
PowerPack-LazyList | ArrayIntAsc | Init | 5.6 | 9.3 |
PowerPack-LazyList | ListIntAsc | Init | 1.1 | 10.6 |
PowerPack-LazyList | ListStringAsc | Init | 1.2 | 13.0 |
PowerPack-LazyList | ArrayStringAsc | Init | 1.1 | 14.6 |
Core-Array | ArrayStringAsc | Init | 2.7 | 38.8 |
Core-Array | ArrayStringRnd | Init | 1.0 | 40.0 |
Core-Array | ArrayIntAsc | Init | 1.0 | 40.6 |
Core-Array | ArrayIntRnd | Init | 1.1 | 43.0 |
FSharpx-BootstrappedQueue | ListIntAsc | Init | 1.1 | 47.4 |
FSharpx-BootstrappedQueue | ListStringAsc | Init | 1.0 | 48.7 |
Core-Array | ListIntAsc | Init | 1.6 | 79.4 |
Core-Array | ListStringAsc | Init | 2.2 | 172.1 |
Core-List | ArrayIntRnd | Init | 2.3 | 388.7 |
Core-List | ArrayIntAsc | Init | 1.0 | 391.0 |
Naive-Stack | ArrayIntAsc | Init | 1.0 | 397.5 |
FSharpx-BootstrappedQueue | ArrayIntAsc | Init | 1.1 | 441.0 |
Core-Array | ListStringRnd | Init | 1.1 | 472.6 |
Core-List | ArrayStringRnd | Init | 1.5 | 701.3 |
Naive-Stack | ArrayStringRnd | Init | 1.0 | 727.5 |
FSharpx-BootstrappedQueue | ArrayStringRnd | Init | 1.0 | 741.6 |
Core-List | ArrayStringAsc | Init | 1.1 | 781.0 |
Naive-Stack | ArrayStringAsc | Init | 1.0 | 810.2 |
FSharpx-BootstrappedQueue | ArrayStringAsc | Init | 1.0 | 821.4 |
Naive-Stack | ListStringRnd | Init | 1.0 | 824.4 |
Naive-Stack | ListIntRnd | Init | 1.1 | 891.3 |
Naive-Stack | ListIntAsc | Init | 1.1 | 954.8 |
Naive-Stack | ListStringAsc | Init | 1.0 | 972.9 |
FSharpx-DList | ArrayIntRnd | Init | 2.0 | 1902.0 |
FSharpx-DList | ArrayIntAsc | Init | 1.0 | 1903.9 |
FSharpx-DList | ListIntAsc | Init | 1.2 | 2267.5 |
FSharpx-DList | ArrayStringAsc | Init | 1.1 | 2585.8 |
FSharpx-DList | ArrayStringRnd | Init | 1.0 | 2597.0 |
FSharpx-DList | ListStringAsc | Init | 1.2 | 3102.8 |
PowerPack-HashMultiMap | ArrayIntAsc | new() | 1.1 | 3268.2 |
PowerPack-HashMultiMap | ListIntAsc | new() | 1.2 | 3806.1 |
PowerPack-HashMultiMap | ArrayStringAsc | new() | 1.0 | 3970.1 |
PowerPack-HashMultiMap | ListStringAsc | new() | 1.1 | 4259.0 |
PowerPack-HashMultiMap | ArrayIntRnd | new() | 1.1 | 4822.4 |
PowerPack-HashMultiMap | ListIntRnd | new() | 1.0 | 5047.4 |
PowerPack-HashMultiMap | ArrayStringRnd | new() | 1.4 | 6913.7 |
PowerPack-HashMultiMap | ListStringRnd | new() | 1.0 | 6934.3 |
Initial Data Performance -- Action: AddOne
Size 1 - 10
Size:1 | Size:10 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best | Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best |
Core-Array | ArrayStringRnd | AddOne | - | - | Core-List | ArrayIntRnd | AddOne | - | - |
Core-Array | ArrayStringAsc | AddOne | 1.0 | 1.0 | Core-Array | ArrayStringRnd | AddOne | 1.0 | 1.0 |
Core-List | ArrayIntRnd | AddOne | 1.0 | 1.0 | Core-Array | ArrayStringAsc | AddOne | 1.0 | 1.0 |
Core-List | ArrayStringRnd | AddOne | 1.0 | 1.1 | Core-List | ArrayStringAsc | AddOne | 1.0 | 1.1 |
Core-Set | ArrayIntRnd | AddOne | 1.0 | 1.1 | Core-Set | ArrayIntRnd | AddOne | 1.0 | 1.1 |
Core-List | ArrayStringAsc | AddOne | 1.0 | 1.1 | Core-Set | ArrayIntAsc | AddOne | 1.0 | 1.1 |
Core-Set | ArrayIntAsc | AddOne | 1.0 | 1.1 | Core-List | ArrayStringRnd | AddOne | 1.1 | 1.2 |
Core-List | ListStringAsc | AddOne | 1.2 | 1.3 | Core-List | ListStringAsc | AddOne | 1.1 | 1.3 |
Core-Array | ListStringRnd | AddOne | 1.0 | 1.3 | Core-Array | ListStringRnd | AddOne | 1.0 | 1.3 |
Core-Array | ListStringAsc | AddOne | 1.0 | 1.3 | Core-Array | ListStringAsc | AddOne | 1.0 | 1.3 |
Core-Set | ListIntAsc | AddOne | 1.1 | 1.5 | Core-Set | ListIntAsc | AddOne | 1.2 | 1.5 |
Core-Array | ArrayIntRnd | AddOne | 1.5 | 2.2 | Core-Array | ListIntRnd | AddOne | 1.4 | 2.2 |
Core-Array | ListIntRnd | AddOne | 1.0 | 2.2 | Core-Array | ArrayIntRnd | AddOne | 1.0 | 2.2 |
Core-Map | ArrayIntAsc | AddOne | 1.0 | 2.2 | Core-Map | ArrayIntRnd | AddOne | 1.0 | 2.2 |
Core-Map | ArrayIntRnd | AddOne | 1.0 | 2.2 | Core-Map | ArrayIntAsc | AddOne | 1.0 | 2.2 |
Core-Array | ListIntAsc | AddOne | 1.0 | 2.3 | Core-Array | ListIntAsc | AddOne | 1.0 | 2.3 |
Core-Map | ListIntAsc | AddOne | 1.0 | 2.4 | Core-Map | ListIntAsc | AddOne | 1.0 | 2.4 |
PowerPack-HashMultiMap | ListIntRnd | AddOne | 1.1 | 2.5 | PowerPack-HashMultiMap | ListIntRnd | AddOne | 1.0 | 2.5 |
Core-List | ListIntRnd | AddOne | 1.0 | 2.5 | PowerPack-HashMultiMap | ListIntAsc | AddOne | 1.0 | 2.5 |
PowerPack-HashMultiMap | ListIntAsc | AddOne | 1.0 | 2.5 | Core-List | ListIntRnd | AddOne | 1.0 | 2.5 |
PowerPack-HashMultiMap | ArrayIntRnd | AddOne | 1.0 | 2.6 | PowerPack-HashMultiMap | ArrayIntRnd | AddOne | 1.0 | 2.5 |
PowerPack-HashMultiMap | ListStringRnd | AddOne | 1.0 | 2.6 | PowerPack-HashMultiMap | ListStringRnd | AddOne | 1.0 | 2.6 |
PowerPack-HashMultiMap | ListStringAsc | AddOne | 1.0 | 2.6 | PowerPack-HashMultiMap | ListStringAsc | AddOne | 1.0 | 2.6 |
PowerPack-HashMultiMap | ArrayIntAsc | AddOne | 1.0 | 2.6 | PowerPack-HashMultiMap | ArrayIntAsc | AddOne | 1.0 | 2.6 |
PowerPack-HashMultiMap | ArrayStringAsc | AddOne | 1.0 | 2.7 | PowerPack-HashMultiMap | ArrayStringRnd | AddOne | 1.0 | 2.7 |
Core-List | ArrayIntAsc | AddOne | 1.0 | 2.8 | PowerPack-HashMultiMap | ArrayStringAsc | AddOne | 1.0 | 2.7 |
PowerPack-HashMultiMap | ArrayStringRnd | AddOne | 1.0 | 2.8 | Core-List | ArrayIntAsc | AddOne | 1.0 | 2.7 |
Core-Set | ArrayStringAsc | AddOne | 1.0 | 2.9 | Core-Set | ArrayStringAsc | AddOne | 1.1 | 3.0 |
Core-Set | ArrayStringRnd | AddOne | 1.0 | 2.9 | Core-Set | ArrayStringRnd | AddOne | 1.0 | 3.0 |
Core-Set | ListStringAsc | AddOne | 1.2 | 3.3 | Core-Set | ListStringAsc | AddOne | 1.2 | 3.5 |
Core-Map | ArrayStringAsc | AddOne | 1.2 | 4.0 | Core-Array | ArrayIntAsc | AddOne | 1.2 | 4.1 |
Core-Map | ArrayStringRnd | AddOne | 1.0 | 4.0 | Core-Map | ArrayStringRnd | AddOne | 1.0 | 4.1 |
Core-Array | ArrayIntAsc | AddOne | 1.0 | 4.1 | Core-Map | ArrayStringAsc | AddOne | 1.0 | 4.2 |
Core-List | ListIntAsc | AddOne | 1.0 | 4.3 | Core-List | ListIntAsc | AddOne | 1.0 | 4.3 |
FSharpx-PersistentVector | ArrayStringAsc | AddOne | 1.0 | 4.3 | FSharpx-PersistentVector | ArrayStringAsc | AddOne | 1.0 | 4.3 |
FSharpx-PersistentVector | ListStringAsc | AddOne | 1.0 | 4.3 | FSharpx-PersistentVector | ListStringAsc | AddOne | 1.0 | 4.3 |
Core-Map | ListStringAsc | AddOne | 1.0 | 4.3 | Core-Map | ListStringAsc | AddOne | 1.0 | 4.5 |
PowerPack-LazyList | ArrayIntAsc | AddOne | 1.1 | 4.7 | PowerPack-LazyList | ArrayIntAsc | AddOne | 1.0 | 4.6 |
FSharpx-PersistentVector | ArrayIntRnd | AddOne | 1.1 | 4.9 | FSharpx-PersistentVector | ArrayIntRnd | AddOne | 1.1 | 4.9 |
FSharpx-PersistentVector | ListIntRnd | AddOne | 1.0 | 5.0 | FSharpx-PersistentVector | ListIntRnd | AddOne | 1.0 | 5.1 |
PowerPack-LazyList | ListIntAsc | AddOne | 1.0 | 5.2 | PowerPack-LazyList | ListIntAsc | AddOne | 1.0 | 5.1 |
FSharpx-TransientVector | ListIntAsc | AddOne | 1.2 | 6.2 | PowerPack-LazyList | ListStringAsc | AddOne | 1.2 | 6.2 |
FSharpx-TransientVector | ArrayIntAsc | AddOne | 1.0 | 6.2 | FSharpx-TransientVector | ListIntAsc | AddOne | 1.0 | 6.2 |
FSharpx-BootstrappedQueue | ArrayIntAsc | AddOne | 1.0 | 6.2 | FSharpx-TransientVector | ListStringRnd | AddOne | 1.0 | 6.2 |
PowerPack-LazyList | ListStringAsc | AddOne | 1.0 | 6.3 | FSharpx-TransientVector | ArrayIntAsc | AddOne | 1.0 | 6.2 |
FSharpx-TransientVector | ListStringRnd | AddOne | 1.0 | 6.3 | FSharpx-TransientVector | ArrayStringRnd | AddOne | 1.0 | 6.2 |
PowerPack-LazyList | ArrayStringRnd | AddOne | 1.0 | 6.3 | PowerPack-LazyList | ArrayStringRnd | AddOne | 1.0 | 6.3 |
FSharpx-TransientVector | ArrayStringRnd | AddOne | 1.0 | 6.3 | FSharpx-TransientVector | ArrayStringAsc | AddOne | 1.0 | 6.3 |
FSharpx-TransientVector | ArrayStringAsc | AddOne | 1.0 | 6.3 | FSharpx-TransientVector | ListStringAsc | AddOne | 1.0 | 6.3 |
PowerPack-LazyList | ArrayStringAsc | AddOne | 1.0 | 6.4 | PowerPack-LazyList | ArrayStringAsc | AddOne | 1.0 | 6.3 |
FSharpx-TransientVector | ListStringAsc | AddOne | 1.0 | 6.4 | FSharpx-PersistentVector | ListIntAsc | AddOne | 1.1 | 6.8 |
FSharpx-BootstrappedQueue | ListIntAsc | AddOne | 1.0 | 6.7 | FSharpx-PersistentVector | ArrayIntAsc | AddOne | 1.0 | 6.9 |
FSharpx-PersistentVector | ListIntAsc | AddOne | 1.0 | 6.8 | FSharpx-ImplicitQueue | ArrayIntRnd | AddOne | 1.9 | 13.0 |
FSharpx-PersistentVector | ArrayIntAsc | AddOne | 1.0 | 6.9 | FSharpx-ImplicitQueue | ArrayIntAsc | AddOne | 1.0 | 13.2 |
FSharpx-BootstrappedQueue | ArrayStringAsc | AddOne | 1.1 | 7.6 | FSharpx-BootstrappedQueue | ArrayStringAsc | AddOne | 1.0 | 13.3 |
FSharpx-BootstrappedQueue | ArrayStringRnd | AddOne | 1.0 | 7.7 | FSharpx-BootstrappedQueue | ArrayStringRnd | AddOne | 1.0 | 13.4 |
FSharpx-BootstrappedQueue | ListStringAsc | AddOne | 1.1 | 8.2 | FSharpx-BootstrappedQueue | ListStringRnd | AddOne | 1.0 | 13.9 |
FSharpx-BootstrappedQueue | ListStringRnd | AddOne | 1.0 | 8.2 | FSharpx-BootstrappedQueue | ListStringAsc | AddOne | 1.0 | 13.9 |
FSharpx-ImplicitQueue | ArrayIntAsc | AddOne | 1.6 | 13.1 | FSharpx-ImplicitQueue | ListIntAsc | AddOne | 1.0 | 14.2 |
FSharpx-ImplicitQueue | ArrayIntRnd | AddOne | 1.0 | 13.2 | FSharpx-ImplicitQueue | ArrayStringRnd | AddOne | 1.1 | 15.1 |
FSharpx-ImplicitQueue | ListIntAsc | AddOne | 1.1 | 14.2 | FSharpx-ImplicitQueue | ArrayStringAsc | AddOne | 1.0 | 15.3 |
FSharpx-ImplicitQueue | ArrayStringRnd | AddOne | 1.0 | 14.2 | FSharpx-DList | ArrayIntRnd | AddOne | 1.1 | 16.2 |
FSharpx-ImplicitQueue | ArrayStringAsc | AddOne | 1.0 | 14.4 | FSharpx-DList | ListIntRnd | AddOne | 1.0 | 16.3 |
FSharpx-ImplicitQueue | ListStringRnd | AddOne | 1.1 | 15.5 | FSharpx-ImplicitQueue | ListStringRnd | AddOne | 1.0 | 16.3 |
FSharpx-ImplicitQueue | ListStringAsc | AddOne | 1.0 | 15.5 | FSharpx-ImplicitQueue | ListStringAsc | AddOne | 1.0 | 16.4 |
FSharpx-DList | ArrayIntRnd | AddOne | 1.0 | 16.0 | FSharpx-DList | ListStringAsc | AddOne | 1.0 | 17.0 |
FSharpx-DList | ListIntRnd | AddOne | 1.0 | 16.1 | FSharpx-DList | ArrayStringAsc | AddOne | 1.0 | 17.1 |
FSharpx-DList | ListStringAsc | AddOne | 1.0 | 16.4 | FSharpx-BootstrappedQueue | ArrayIntAsc | AddOne | 1.0 | 17.6 |
FSharpx-DList | ArrayStringAsc | AddOne | 1.0 | 16.5 | FSharpx-BootstrappedQueue | ListIntAsc | AddOne | 1.0 | 17.8 |
FSharpx-DList | ListIntAsc | AddOne | 1.1 | 18.0 | FSharpx-DList | ListIntAsc | AddOne | 1.0 | 18.1 |
FSharpx-DList | ArrayIntAsc | AddOne | 1.0 | 18.2 | FSharpx-DList | ArrayIntAsc | AddOne | 1.0 | 18.3 |
FSharpx-RealTimeQueue | ArrayIntAsc | AddOne | 2.1 | 37.4 | FSharpx-RealTimeQueue | ArrayIntAsc | AddOne | 2.3 | 41.3 |
FSharpx-RealTimeQueue | ListIntRnd | AddOne | 1.0 | 37.5 | FSharpx-RealTimeQueue | ListIntRnd | AddOne | 1.0 | 41.4 |
FSharpx-RealTimeQueue | ListIntAsc | AddOne | 1.0 | 37.8 | FSharpx-RealTimeQueue | ListIntAsc | AddOne | 1.0 | 41.6 |
FSharpx-RealTimeQueue | ArrayStringRnd | AddOne | 1.1 | 40.9 | FSharpx-RealTimeQueue | ArrayStringRnd | AddOne | 1.1 | 45.3 |
FSharpx-RealTimeQueue | ArrayStringAsc | AddOne | 1.0 | 41.0 | FSharpx-RealTimeQueue | ArrayStringAsc | AddOne | 1.0 | 45.4 |
FSharpx-RealTimeQueue | ListStringRnd | AddOne | 1.0 | 42.0 | FSharpx-RealTimeQueue | ListStringRnd | AddOne | 1.0 | 46.4 |
FSharpx-RealTimeQueue | ListStringAsc | AddOne | 1.0 | 42.1 | FSharpx-RealTimeQueue | ListStringAsc | AddOne | 1.0 | 46.4 |
Size 100 - 1,000
Size:100 | Size:1,000 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best | Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best |
Core-List | ArrayIntRnd | AddOne | - | - | Core-List | ArrayIntRnd | AddOne | - | - |
Core-List | ArrayStringRnd | AddOne | 1.1 | 1.1 | Core-List | ArrayStringRnd | AddOne | 1.1 | 1.1 |
Core-List | ArrayStringAsc | AddOne | 1.0 | 1.1 | Core-List | ArrayStringAsc | AddOne | 1.0 | 1.1 |
Core-Array | ArrayStringRnd | AddOne | 1.1 | 1.2 | Core-List | ArrayIntAsc | AddOne | 2.5 | 2.7 |
Core-Array | ArrayStringAsc | AddOne | 1.0 | 1.2 | PowerPack-HashMultiMap | ListIntRnd | AddOne | 1.1 | 3.0 |
Core-Set | ArrayIntAsc | AddOne | 1.0 | 1.3 | PowerPack-HashMultiMap | ListIntAsc | AddOne | 1.0 | 3.1 |
Core-Set | ArrayIntRnd | AddOne | 1.1 | 1.4 | Core-Set | ArrayIntAsc | AddOne | 1.0 | 3.1 |
Core-List | ListStringAsc | AddOne | 1.0 | 1.4 | PowerPack-HashMultiMap | ArrayIntRnd | AddOne | 1.0 | 3.1 |
Core-Array | ListStringRnd | AddOne | 1.1 | 1.5 | PowerPack-HashMultiMap | ArrayIntAsc | AddOne | 1.0 | 3.1 |
Core-Array | ListStringAsc | AddOne | 1.0 | 1.5 | PowerPack-HashMultiMap | ListStringAsc | AddOne | 1.1 | 3.3 |
Core-Set | ListIntAsc | AddOne | 1.1 | 1.7 | Core-Set | ArrayIntRnd | AddOne | 1.0 | 3.4 |
Core-Array | ListIntRnd | AddOne | 1.3 | 2.2 | PowerPack-HashMultiMap | ArrayStringAsc | AddOne | 1.0 | 3.4 |
Core-Array | ArrayIntRnd | AddOne | 1.0 | 2.3 | PowerPack-HashMultiMap | ListStringRnd | AddOne | 1.0 | 3.4 |
Core-Map | ArrayIntRnd | AddOne | 1.0 | 2.3 | PowerPack-HashMultiMap | ArrayStringRnd | AddOne | 1.0 | 3.5 |
Core-Map | ArrayIntAsc | AddOne | 1.0 | 2.3 | Core-Map | ArrayIntRnd | AddOne | 1.2 | 4.2 |
Core-Array | ListIntAsc | AddOne | 1.0 | 2.4 | Core-Map | ArrayIntAsc | AddOne | 1.0 | 4.2 |
PowerPack-HashMultiMap | ListIntRnd | AddOne | 1.1 | 2.6 | PowerPack-LazyList | ArrayIntAsc | AddOne | 1.1 | 4.6 |
Core-Map | ListIntAsc | AddOne | 1.0 | 2.6 | PowerPack-LazyList | ListIntAsc | AddOne | 1.1 | 5.1 |
PowerPack-HashMultiMap | ListIntAsc | AddOne | 1.0 | 2.6 | Core-Set | ListIntAsc | AddOne | 1.0 | 5.3 |
PowerPack-HashMultiMap | ArrayIntRnd | AddOne | 1.0 | 2.6 | Core-Set | ArrayStringRnd | AddOne | 1.2 | 6.1 |
Core-List | ListIntRnd | AddOne | 1.0 | 2.7 | Core-Set | ArrayStringAsc | AddOne | 1.0 | 6.2 |
PowerPack-HashMultiMap | ListStringRnd | AddOne | 1.0 | 2.7 | PowerPack-LazyList | ListStringAsc | AddOne | 1.0 | 6.2 |
PowerPack-HashMultiMap | ArrayIntAsc | AddOne | 1.0 | 2.7 | PowerPack-LazyList | ArrayStringAsc | AddOne | 1.0 | 6.2 |
PowerPack-HashMultiMap | ListStringAsc | AddOne | 1.0 | 2.7 | PowerPack-LazyList | ArrayStringRnd | AddOne | 1.0 | 6.3 |
Core-List | ArrayIntAsc | AddOne | 1.0 | 2.8 | Core-Map | ListIntAsc | AddOne | 1.2 | 7.3 |
PowerPack-HashMultiMap | ArrayStringAsc | AddOne | 1.0 | 2.8 | Core-Array | ListIntAsc | AddOne | 1.0 | 7.3 |
PowerPack-HashMultiMap | ArrayStringRnd | AddOne | 1.0 | 2.8 | Core-Array | ListIntRnd | AddOne | 1.0 | 7.4 |
Core-Set | ArrayStringRnd | AddOne | 1.1 | 3.2 | FSharpx-TransientVector | ListIntAsc | AddOne | 1.0 | 7.6 |
Core-Set | ArrayStringAsc | AddOne | 1.0 | 3.2 | FSharpx-TransientVector | ArrayIntAsc | AddOne | 1.0 | 7.6 |
Core-Set | ListStringAsc | AddOne | 1.1 | 3.7 | Core-Map | ArrayStringRnd | AddOne | 1.0 | 7.6 |
Core-Array | ArrayIntAsc | AddOne | 1.1 | 4.2 | Core-Map | ArrayStringAsc | AddOne | 1.0 | 7.7 |
Core-Map | ArrayStringRnd | AddOne | 1.0 | 4.4 | FSharpx-TransientVector | ListStringAsc | AddOne | 1.0 | 7.7 |
Core-List | ListIntAsc | AddOne | 1.0 | 4.4 | FSharpx-TransientVector | ArrayStringRnd | AddOne | 1.0 | 7.8 |
Core-Map | ArrayStringAsc | AddOne | 1.0 | 4.5 | FSharpx-TransientVector | ArrayStringAsc | AddOne | 1.0 | 7.8 |
Core-Map | ListStringAsc | AddOne | 1.0 | 4.7 | FSharpx-TransientVector | ListStringRnd | AddOne | 1.0 | 7.8 |
PowerPack-LazyList | ArrayIntAsc | AddOne | 1.0 | 4.7 | Core-Set | ListStringAsc | AddOne | 1.1 | 8.2 |
PowerPack-LazyList | ListIntAsc | AddOne | 1.1 | 5.2 | Core-List | ListStringAsc | AddOne | 1.1 | 8.7 |
FSharpx-PersistentVector | ArrayStringAsc | AddOne | 1.0 | 5.3 | Core-List | ListIntRnd | AddOne | 1.2 | 10.1 |
FSharpx-PersistentVector | ListStringAsc | AddOne | 1.0 | 5.4 | FSharpx-PersistentVector | ArrayStringAsc | AddOne | 1.0 | 10.3 |
FSharpx-PersistentVector | ArrayIntRnd | AddOne | 1.1 | 6.0 | Core-Array | ArrayIntRnd | AddOne | 1.0 | 10.6 |
FSharpx-PersistentVector | ListIntRnd | AddOne | 1.0 | 6.1 | Core-Map | ListStringAsc | AddOne | 1.0 | 10.7 |
PowerPack-LazyList | ListStringAsc | AddOne | 1.0 | 6.3 | FSharpx-PersistentVector | ArrayIntRnd | AddOne | 1.0 | 11.2 |
PowerPack-LazyList | ArrayStringRnd | AddOne | 1.0 | 6.4 | Core-List | ListIntAsc | AddOne | 1.1 | 12.4 |
PowerPack-LazyList | ArrayStringAsc | AddOne | 1.0 | 6.4 | Core-Array | ArrayIntAsc | AddOne | 1.0 | 12.4 |
FSharpx-TransientVector | ListIntAsc | AddOne | 1.2 | 7.5 | FSharpx-ImplicitQueue | ArrayIntRnd | AddOne | 1.0 | 12.9 |
FSharpx-TransientVector | ArrayIntAsc | AddOne | 1.0 | 7.5 | FSharpx-ImplicitQueue | ArrayIntAsc | AddOne | 1.0 | 13.1 |
FSharpx-TransientVector | ArrayStringRnd | AddOne | 1.0 | 7.5 | FSharpx-PersistentVector | ArrayIntAsc | AddOne | 1.0 | 13.2 |
FSharpx-TransientVector | ListStringRnd | AddOne | 1.0 | 7.6 | FSharpx-BootstrappedQueue | ArrayStringRnd | AddOne | 1.1 | 13.8 |
FSharpx-TransientVector | ListStringAsc | AddOne | 1.0 | 7.7 | FSharpx-BootstrappedQueue | ArrayStringAsc | AddOne | 1.0 | 13.9 |
FSharpx-TransientVector | ArrayStringAsc | AddOne | 1.0 | 7.7 | FSharpx-PersistentVector | ListStringAsc | AddOne | 1.0 | 14.0 |
FSharpx-PersistentVector | ArrayIntAsc | AddOne | 1.0 | 7.9 | FSharpx-ImplicitQueue | ListIntAsc | AddOne | 1.0 | 14.2 |
FSharpx-PersistentVector | ListIntAsc | AddOne | 1.0 | 8.0 | FSharpx-BootstrappedQueue | ListStringRnd | AddOne | 1.0 | 14.5 |
FSharpx-ImplicitQueue | ArrayIntRnd | AddOne | 1.6 | 13.2 | FSharpx-BootstrappedQueue | ListStringAsc | AddOne | 1.0 | 14.5 |
FSharpx-ImplicitQueue | ArrayIntAsc | AddOne | 1.0 | 13.2 | FSharpx-PersistentVector | ListIntRnd | AddOne | 1.0 | 14.5 |
FSharpx-BootstrappedQueue | ArrayStringRnd | AddOne | 1.1 | 13.9 | FSharpx-ImplicitQueue | ArrayStringAsc | AddOne | 1.1 | 15.3 |
FSharpx-BootstrappedQueue | ArrayStringAsc | AddOne | 1.0 | 13.9 | FSharpx-ImplicitQueue | ArrayStringRnd | AddOne | 1.0 | 15.4 |
FSharpx-ImplicitQueue | ListIntAsc | AddOne | 1.0 | 14.3 | Core-Array | ListStringRnd | AddOne | 1.0 | 16.1 |
FSharpx-BootstrappedQueue | ListStringRnd | AddOne | 1.0 | 14.6 | FSharpx-ImplicitQueue | ListStringAsc | AddOne | 1.0 | 16.3 |
FSharpx-BootstrappedQueue | ListStringAsc | AddOne | 1.0 | 14.6 | FSharpx-ImplicitQueue | ListStringRnd | AddOne | 1.0 | 16.4 |
FSharpx-ImplicitQueue | ArrayStringAsc | AddOne | 1.1 | 15.3 | Core-Array | ListStringAsc | AddOne | 1.0 | 17.0 |
FSharpx-ImplicitQueue | ArrayStringRnd | AddOne | 1.0 | 15.4 | FSharpx-PersistentVector | ListIntAsc | AddOne | 1.0 | 17.4 |
FSharpx-DList | ArrayIntRnd | AddOne | 1.1 | 16.4 | FSharpx-BootstrappedQueue | ArrayIntAsc | AddOne | 1.0 | 18.1 |
FSharpx-ImplicitQueue | ListStringRnd | AddOne | 1.0 | 16.4 | Core-Array | ArrayStringRnd | AddOne | 1.0 | 18.2 |
FSharpx-DList | ListIntRnd | AddOne | 1.0 | 16.4 | FSharpx-BootstrappedQueue | ListIntAsc | AddOne | 1.0 | 18.4 |
FSharpx-ImplicitQueue | ListStringAsc | AddOne | 1.0 | 16.5 | Core-Array | ArrayStringAsc | AddOne | 1.1 | 19.5 |
FSharpx-DList | ArrayStringAsc | AddOne | 1.1 | 17.3 | FSharpx-DList | ArrayIntRnd | AddOne | 1.1 | 21.5 |
FSharpx-DList | ListStringAsc | AddOne | 1.0 | 17.3 | FSharpx-DList | ArrayStringAsc | AddOne | 1.0 | 21.6 |
FSharpx-DList | ListIntAsc | AddOne | 1.1 | 18.4 | FSharpx-DList | ArrayIntAsc | AddOne | 1.1 | 23.1 |
FSharpx-BootstrappedQueue | ArrayIntAsc | AddOne | 1.0 | 18.5 | FSharpx-DList | ListIntRnd | AddOne | 1.0 | 24.1 |
FSharpx-DList | ArrayIntAsc | AddOne | 1.0 | 18.5 | FSharpx-DList | ListStringAsc | AddOne | 1.0 | 25.3 |
FSharpx-BootstrappedQueue | ListIntAsc | AddOne | 1.0 | 18.8 | FSharpx-DList | ListIntAsc | AddOne | 1.0 | 26.0 |
FSharpx-RealTimeQueue | ListIntRnd | AddOne | 2.2 | 41.6 | FSharpx-RealTimeQueue | ArrayIntAsc | AddOne | 1.6 | 42.6 |
FSharpx-RealTimeQueue | ArrayIntAsc | AddOne | 1.0 | 41.7 | FSharpx-RealTimeQueue | ListIntAsc | AddOne | 1.0 | 42.7 |
FSharpx-RealTimeQueue | ListIntAsc | AddOne | 1.0 | 41.9 | FSharpx-RealTimeQueue | ListIntRnd | AddOne | 1.0 | 42.8 |
FSharpx-RealTimeQueue | ArrayStringRnd | AddOne | 1.1 | 45.8 | FSharpx-RealTimeQueue | ArrayStringAsc | AddOne | 1.1 | 46.2 |
FSharpx-RealTimeQueue | ArrayStringAsc | AddOne | 1.0 | 46.0 | FSharpx-RealTimeQueue | ArrayStringRnd | AddOne | 1.0 | 46.8 |
FSharpx-RealTimeQueue | ListStringRnd | AddOne | 1.0 | 46.9 | FSharpx-RealTimeQueue | ListStringAsc | AddOne | 1.0 | 47.2 |
FSharpx-RealTimeQueue | ListStringAsc | AddOne | 1.0 | 47.0 | FSharpx-RealTimeQueue | ListStringRnd | AddOne | 1.0 | 47.8 |
Size 10,000 - 100,000
Size:10,000 | Size:100,000 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best | Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best |
Core-List | ArrayIntRnd | AddOne | Core-List | ArrayStringAsc | AddOne | ||||
Core-List | ArrayStringRnd | AddOne | 1.2 | 1.2 | Core-List | ArrayIntRnd | AddOne | 1.1 | 1.1 |
Core-List | ArrayStringAsc | AddOne | 1.0 | 1.2 | Core-List | ArrayIntAsc | AddOne | 1.4 | 1.5 |
Core-List | ArrayIntAsc | AddOne | 2.2 | 2.5 | PowerPack-LazyList | ListIntAsc | AddOne | 1.8 | 2.6 |
PowerPack-LazyList | ArrayIntAsc | AddOne | 1.8 | 4.5 | PowerPack-LazyList | ArrayIntAsc | AddOne | 1.1 | 3.0 |
PowerPack-LazyList | ListIntAsc | AddOne | 1.1 | 4.9 | PowerPack-LazyList | ListStringAsc | AddOne | 1.1 | 3.2 |
PowerPack-LazyList | ListStringAsc | AddOne | 1.2 | 5.8 | PowerPack-LazyList | ArrayStringAsc | AddOne | 1.0 | 3.2 |
PowerPack-LazyList | ArrayStringRnd | AddOne | 1.0 | 5.9 | Core-List | ArrayStringRnd | AddOne | 2.5 | 8.1 |
PowerPack-LazyList | ArrayStringAsc | AddOne | 1.0 | 5.9 | FSharpx-BootstrappedQueue | ArrayIntAsc | AddOne | 1.1 | 9.3 |
PowerPack-HashMultiMap | ListIntAsc | AddOne | 1.2 | 6.9 | FSharpx-TransientVector | ListIntAsc | AddOne | 1.0 | 9.6 |
PowerPack-HashMultiMap | ListIntRnd | AddOne | 1.0 | 6.9 | FSharpx-TransientVector | ArrayIntAsc | AddOne | 1.0 | 9.7 |
PowerPack-HashMultiMap | ArrayIntRnd | AddOne | 1.0 | 7.0 | FSharpx-TransientVector | ArrayStringAsc | AddOne | 1.0 | 9.8 |
PowerPack-HashMultiMap | ArrayIntAsc | AddOne | 1.0 | 7.1 | PowerPack-LazyList | ArrayStringRnd | AddOne | 1.0 | 9.9 |
PowerPack-HashMultiMap | ArrayStringAsc | AddOne | 1.2 | 8.8 | FSharpx-ImplicitQueue | ArrayIntRnd | AddOne | 1.0 | 9.9 |
PowerPack-HashMultiMap | ListStringAsc | AddOne | 1.0 | 8.8 | FSharpx-ImplicitQueue | ArrayIntAsc | AddOne | 1.0 | 10.1 |
FSharpx-TransientVector | ListIntAsc | AddOne | 1.1 | 9.5 | FSharpx-TransientVector | ListStringAsc | AddOne | 1.0 | 10.6 |
FSharpx-TransientVector | ArrayIntAsc | AddOne | 1.0 | 9.6 | FSharpx-ImplicitQueue | ListIntAsc | AddOne | 1.2 | 12.5 |
FSharpx-TransientVector | ArrayStringAsc | AddOne | 1.0 | 9.6 | FSharpx-TransientVector | ArrayStringRnd | AddOne | 1.0 | 12.6 |
FSharpx-TransientVector | ListStringAsc | AddOne | 1.0 | 9.7 | FSharpx-TransientVector | ListStringRnd | AddOne | 1.1 | 14.3 |
PowerPack-HashMultiMap | ListStringRnd | AddOne | 1.1 | 10.5 | FSharpx-BootstrappedQueue | ListIntAsc | AddOne | 1.0 | 14.6 |
PowerPack-HashMultiMap | ArrayStringRnd | AddOne | 1.0 | 10.7 | PowerPack-HashMultiMap | ArrayIntAsc | AddOne | 1.1 | 15.6 |
FSharpx-TransientVector | ListStringRnd | AddOne | 1.0 | 10.7 | FSharpx-BootstrappedQueue | ArrayStringRnd | AddOne | 1.0 | 15.6 |
FSharpx-TransientVector | ArrayStringRnd | AddOne | 1.0 | 10.9 | FSharpx-BootstrappedQueue | ArrayStringAsc | AddOne | 1.1 | 17.2 |
FSharpx-ImplicitQueue | ListIntAsc | AddOne | 1.2 | 13.3 | FSharpx-BootstrappedQueue | ListStringAsc | AddOne | 1.0 | 17.4 |
FSharpx-BootstrappedQueue | ArrayStringRnd | AddOne | 1.0 | 13.6 | PowerPack-HashMultiMap | ArrayIntRnd | AddOne | 1.0 | 17.9 |
FSharpx-BootstrappedQueue | ArrayStringAsc | AddOne | 1.0 | 13.6 | PowerPack-HashMultiMap | ListIntAsc | AddOne | 1.1 | 18.9 |
FSharpx-BootstrappedQueue | ListStringAsc | AddOne | 1.0 | 14.1 | PowerPack-HashMultiMap | ArrayStringAsc | AddOne | 1.1 | 20.7 |
FSharpx-BootstrappedQueue | ListStringRnd | AddOne | 1.0 | 14.2 | PowerPack-HashMultiMap | ListIntRnd | AddOne | 1.0 | 21.2 |
FSharpx-ImplicitQueue | ArrayIntRnd | AddOne | 1.1 | 15.0 | FSharpx-BootstrappedQueue | ListStringRnd | AddOne | 1.0 | 21.6 |
FSharpx-ImplicitQueue | ArrayStringAsc | AddOne | 1.1 | 16.2 | PowerPack-HashMultiMap | ListStringAsc | AddOne | 1.0 | 21.7 |
FSharpx-BootstrappedQueue | ArrayIntAsc | AddOne | 1.0 | 16.5 | FSharpx-ImplicitQueue | ListStringAsc | AddOne | 1.1 | 22.9 |
FSharpx-BootstrappedQueue | ListIntAsc | AddOne | 1.0 | 16.8 | FSharpx-ImplicitQueue | ArrayStringAsc | AddOne | 1.0 | 22.9 |
FSharpx-ImplicitQueue | ArrayIntAsc | AddOne | 1.0 | 17.1 | FSharpx-ImplicitQueue | ListStringRnd | AddOne | 1.2 | 26.5 |
FSharpx-ImplicitQueue | ListStringRnd | AddOne | 1.0 | 17.1 | PowerPack-HashMultiMap | ListStringRnd | AddOne | 1.1 | 29.9 |
FSharpx-ImplicitQueue | ListStringAsc | AddOne | 1.0 | 17.2 | PowerPack-HashMultiMap | ArrayStringRnd | AddOne | 1.0 | 30.5 |
FSharpx-ImplicitQueue | ArrayStringRnd | AddOne | 1.1 | 19.5 | FSharpx-ImplicitQueue | ArrayStringRnd | AddOne | 1.3 | 40.0 |
Core-Map | ArrayIntRnd | AddOne | 1.4 | 27.0 | Core-Set | ArrayIntAsc | AddOne | 2.1 | 85.2 |
Core-Set | ArrayIntRnd | AddOne | 1.1 | 29.2 | Core-Map | ArrayIntAsc | AddOne | 1.1 | 89.6 |
Core-Set | ArrayIntAsc | AddOne | 1.0 | 29.4 | Core-Set | ArrayIntRnd | AddOne | 1.4 | 127.4 |
Core-Map | ArrayIntAsc | AddOne | 1.0 | 30.8 | Core-Map | ArrayIntRnd | AddOne | 1.0 | 133.3 |
Core-Set | ArrayStringAsc | AddOne | 1.3 | 41.1 | Core-Set | ArrayStringAsc | AddOne | 1.1 | 144.0 |
Core-Map | ArrayStringAsc | AddOne | 1.1 | 44.5 | Core-Map | ArrayStringAsc | AddOne | 1.1 | 158.9 |
Core-Set | ArrayStringRnd | AddOne | 1.0 | 45.7 | Core-Set | ArrayStringRnd | AddOne | 1.3 | 204.8 |
Core-Map | ArrayStringRnd | AddOne | 1.1 | 51.8 | Core-Map | ArrayStringRnd | AddOne | 1.1 | 223.1 |
FSharpx-RealTimeQueue | ArrayStringAsc | AddOne | 1.2 | 60.3 | Core-Set | ListIntAsc | AddOne | 29.3 | 6543.0 |
FSharpx-RealTimeQueue | ListStringAsc | AddOne | 1.0 | 61.0 | Core-Set | ListStringAsc | AddOne | 1.0 | 6725.2 |
FSharpx-RealTimeQueue | ArrayIntAsc | AddOne | 1.0 | 62.8 | FSharpx-PersistentVector | ArrayIntAsc | AddOne | 1.4 | 9443.6 |
FSharpx-RealTimeQueue | ListIntAsc | AddOne | 1.0 | 62.8 | FSharpx-PersistentVector | ArrayIntRnd | AddOne | 1.0 | 9556.7 |
FSharpx-RealTimeQueue | ListIntRnd | AddOne | 1.1 | 67.2 | FSharpx-DList | ArrayIntAsc | AddOne | 1.0 | 9719.0 |
FSharpx-RealTimeQueue | ArrayStringRnd | AddOne | 1.1 | 71.4 | FSharpx-DList | ArrayStringAsc | AddOne | 1.1 | 11058.4 |
FSharpx-RealTimeQueue | ListStringRnd | AddOne | 1.1 | 75.4 | FSharpx-DList | ArrayIntRnd | AddOne | 1.0 | 11367.8 |
Core-Set | ListStringAsc | AddOne | 2.3 | 173.8 | Core-List | ListIntAsc | AddOne | 1.5 | 17179.1 |
Core-Set | ListIntAsc | AddOne | 1.0 | 180.1 | Core-Array | ArrayIntAsc | AddOne | 1.1 | 19008.0 |
Core-Map | ListIntAsc | AddOne | 1.6 | 291.5 | Core-Array | ArrayIntRnd | AddOne | 1.1 | 20202.0 |
Core-Map | ListStringAsc | AddOne | 1.1 | 315.2 | Core-Map | ListIntAsc | AddOne | 1.2 | 24716.1 |
FSharpx-PersistentVector | ArrayIntAsc | AddOne | 1.2 | 382.0 | |||||
FSharpx-PersistentVector | ArrayIntRnd | AddOne | 1.0 | 387.3 | |||||
FSharpx-DList | ArrayIntAsc | AddOne | 1.0 | 400.5 | |||||
FSharpx-DList | ArrayIntRnd | AddOne | 1.1 | 421.8 | |||||
FSharpx-DList | ArrayStringAsc | AddOne | 1.0 | 441.2 | |||||
FSharpx-PersistentVector | ArrayStringAsc | AddOne | 1.0 | 441.7 | |||||
Core-Array | ListIntAsc | AddOne | 1.1 | 504.7 | |||||
Core-Array | ListIntRnd | AddOne | 1.0 | 513.7 | |||||
Core-List | ListIntRnd | AddOne | 1.1 | 586.8 | |||||
FSharpx-DList | ListStringAsc | AddOne | 1.1 | 616.8 | |||||
Core-List | ListStringAsc | AddOne | 1.0 | 618.4 | |||||
FSharpx-PersistentVector | ListIntRnd | AddOne | 1.0 | 638.9 | |||||
Core-Array | ArrayIntAsc | AddOne | 1.0 | 640.0 | |||||
Core-Array | ArrayIntRnd | AddOne | 1.0 | 641.1 | |||||
FSharpx-PersistentVector | ListIntAsc | AddOne | 1.0 | 645.5 | |||||
FSharpx-PersistentVector | ListStringAsc | AddOne | 1.0 | 661.7 | |||||
FSharpx-DList | ListIntAsc | AddOne | 1.0 | 662.3 | |||||
Core-List | ListIntAsc | AddOne | 1.0 | 664.7 | |||||
FSharpx-DList | ListIntRnd | AddOne | 1.0 | 667.7 | |||||
Core-Array | ListStringAsc | AddOne | 2.5 | 1656.9 | |||||
Core-Array | ArrayStringAsc | AddOne | 1.1 | 1752.0 | |||||
Core-Array | ArrayStringRnd | AddOne | 1.3 | 2295.4 | |||||
Core-Array | ListStringRnd | AddOne | 1.1 | 2430.8 |
Size 1,000,000
Size:1,000,000 | ||||
---|---|---|---|---|
Data Structure | Initial Data | Action | Time rel to prev increment | Time rel to best |
Core-List | ArrayIntRnd | AddOne | ||
Core-List | ArrayIntAsc | AddOne | 1.0 | 1.0 |
Core-List | ArrayStringRnd | AddOne | 1.8 | 1.8 |
Core-List | ArrayStringAsc | AddOne | 1.1 | 2.0 |
FSharpx-TransientVector | ArrayStringAsc | AddOne | 2.1 | 4.2 |
FSharpx-TransientVector | ListStringAsc | AddOne | 1.1 | 4.6 |
FSharpx-TransientVector | ArrayIntAsc | AddOne | 1.2 | 5.5 |
FSharpx-TransientVector | ListIntAsc | AddOne | 1.1 | 6.2 |
FSharpx-TransientVector | ArrayStringRnd | AddOne | 1.0 | 6.3 |
FSharpx-TransientVector | ListStringRnd | AddOne | 1.1 | 6.9 |
FSharpx-BootstrappedQueue | ArrayIntAsc | AddOne | 1.0 | 7.2 |
PowerPack-LazyList | ArrayStringAsc | AddOne | 1.0 | 7.4 |
PowerPack-LazyList | ArrayStringRnd | AddOne | 1.1 | 7.9 |
PowerPack-HashMultiMap | ArrayIntAsc | AddOne | 1.0 | 8.1 |
FSharpx-BootstrappedQueue | ListIntAsc | AddOne | 1.0 | 8.3 |
FSharpx-BootstrappedQueue | ArrayStringRnd | AddOne | 1.0 | 8.3 |
PowerPack-LazyList | ArrayIntAsc | AddOne | 1.0 | 8.3 |
FSharpx-BootstrappedQueue | ListStringRnd | AddOne | 1.0 | 8.5 |
FSharpx-BootstrappedQueue | ArrayStringAsc | AddOne | 1.0 | 8.5 |
PowerPack-LazyList | ListStringAsc | AddOne | 1.0 | 8.6 |
PowerPack-HashMultiMap | ListIntAsc | AddOne | 1.1 | 9.3 |
PowerPack-LazyList | ListIntAsc | AddOne | 1.1 | 9.8 |
PowerPack-HashMultiMap | ArrayStringAsc | AddOne | 1.1 | 10.4 |
PowerPack-HashMultiMap | ListStringAsc | AddOne | 1.0 | 10.4 |
PowerPack-HashMultiMap | ArrayIntRnd | AddOne | 1.1 | 11.5 |
PowerPack-HashMultiMap | ListIntRnd | AddOne | 1.1 | 12.7 |
FSharpx-BootstrappedQueue | ListStringAsc | AddOne | 1.0 | 13.1 |
FSharpx-ImplicitQueue | ArrayIntRnd | AddOne | 1.0 | 13.2 |
FSharpx-ImplicitQueue | ArrayIntAsc | AddOne | 1.0 | 13.2 |
FSharpx-ImplicitQueue | ListIntAsc | AddOne | 1.0 | 13.3 |
FSharpx-ImplicitQueue | ArrayStringAsc | AddOne | 1.2 | 15.7 |
FSharpx-ImplicitQueue | ListStringRnd | AddOne | 1.0 | 15.9 |
PowerPack-HashMultiMap | ListStringRnd | AddOne | 1.1 | 18.0 |
PowerPack-HashMultiMap | ArrayStringRnd | AddOne | 1.0 | 18.5 |
FSharpx-ImplicitQueue | ArrayStringRnd | AddOne | 1.1 | 19.6 |
FSharpx-ImplicitQueue | ListStringAsc | AddOne | 1.2 | 23.4 |
Performance Metrics Methodology
The purpose of the Data Structure Performance Metric Tables is to provide relative comparisons across data structure options. The assumption is relative performance is more or less constant on any given machine regardless of operating system, CPU architecture, clock speed, or memory configuration. This assumption has been tested on a 64-bit and a 32-bit Windows 7 machine, and the relative performance characteristics within each system were remarkably consistent, despite the 64-bit machine executing all benchmarks considerably faster.
The code to be timed runs one time in an exe process and garbage collection is forced before timing begins.
Experiments showed fewer than 15% of timed executions are typically outliers on the long side. Metrics represent the “most common best case performance”. Each metric is based on 50 executions, taking the fastest 40 to calculate a median time (in ticks) and the deviation from the median. In almost all cases the observed deviation has been less than 5%.
We then compare the median times against each other to create the published metrics
Reading the Data Structure Performance Tables
The performance metric tables are organized by data structure library and data structure. Comparison tables across all data structures exist at the top of this page.
Actions
Different data structures have different names for common Actions, or frequently do not have a dedicated function for a common Action. As an example, the Array data structure has no native function value for adding an element, and in fact is not intended to support this functionality. Nevertheless it is possible to write code do this, so its performance can be compared to other data structures.
The Actions currently measured are:
AddOne
— Taking an existing data structure add one new element to it.
Init
— Creating a new data structure from an existing Array, List, or Sequence using the native module value available.
new()
— Creating a new data structure from an existing Array, List, or Sequence using the native constructor available.
Supported by the project, but not yet compiled into metric tables:
Append
— Join two data structures into one.
Iterate
— Move through each element in the data structure.
LookUpRand
— Retrieve a random element in the data structure, by key for structures supporting a key, otherwise by index or position.
UpdateRand
— Like LookUpRand, but updating the retrieved element.
At the top of each structure’s performance metrics is an explanation of the implementation for each action.
Initial Data
For the actions populating data elements — AddOne, Init, new()
— Initial Data is the collection type from which data was drawn — Array, List, Seq
.
Initial Data consists of either string
or 32-bit integer
data. String data is evenly distributed from one to 26 characters in length. In the case of structures populating Actions — AddOne, Init, new()
— Initial Data order can make a performance difference in some cases. If results show ordering possibly makes a difference, then separate metric tables are provided. Otherwise the initial order should be assumed to be ascending
.
ascending
— no duplicates
descending
— no duplicates
random
— no duplicates
random duplicate
— every unique value exists two times
Performance Metric Tables
The tables are arranged by size (number of elements) and entries are ordered by ascending median time (see methodology) to complete one action. “TIME REL TO PREV INCREMENT” and “TIME REL TO BEST” report multiples relative to the previous and first entries in the table respectively.
AddOne, Init, new()
— “one action” means the entire creation and population of a structure.
Append
— “one action” means appending one structure to another.
Iterate
— “one action” means iterating through the entire data structure.
LookUpRand, UpdateRand
— “one action” means performing the given number of lookups/updates (e.g. 10,000).