update-in*
version 5 offers notable performance improvements for nested hashmaps and nested vectors.
See the overall summary for benchmarking details. The benchmarks displayed in this document are defined here.
Version 5 improves performance to within 18% of clojure.core/update-in
when handling hashmaps.
arg, n | ||||||
---|---|---|---|---|---|---|
version | 1 | 2 | 3 | 4 | 5 | 6 |
4 | 2.6e-07±3.6e-09 | 5.9e-07±1.2e-08 | 8.5e-07±2.0e-08 | 1.0e-06±1.1e-08 | 1.2e-06±2.0e-08 | 1.4e-06±3.0e-08 |
5 | 2.2e-07±3.7e-09 | 4.6e-07±2.3e-09 | 6.5e-07±9.1e-09 | 7.9e-07±1.0e-08 | 9.1e-07±4.8e-09 | 1.1e-06±1.1e-08 |
arg, n | ||||||
---|---|---|---|---|---|---|
version | 1 | 2 | 3 | 4 | 5 | 6 |
4 | 3.9e-07±5.8e-09 | 1.1e-06±8.9e-09 | 1.6e-06±2.5e-08 | 2.2e-06±6.1e-08 | 2.7e-06±4.7e-08 | 3.2e-06±8.4e-08 |
5 | 2.5e-07±1.6e-09 | 5.0e-07±2.0e-09 | 8.6e-07±1.1e-08 | 9.9e-07±9.7e-09 | 1.2e-06±5.3e-09 | 1.3e-06±7.3e-09 |
Version 5 improves performance 5 to 15% when handling lists.
arg, n | ||||
---|---|---|---|---|
version | 1 | 2 | 3 | 4 |
4 | 1.3e-06±1.0e-08 | 4.3e-06±1.0e-07 | 1.1e-05±8.0e-08 | 2.0e-05±2.8e-07 |
5 | 1.1e-06±8.4e-09 | 3.9e-06±2.7e-08 | 9.5e-06±9.9e-08 | 1.9e-05±2.4e-07 |
Version 5 provides slightly improved performance when handling nested lists.
arg, n | ||||||
---|---|---|---|---|---|---|
version | 1 | 2 | 3 | 4 | 5 | 6 |
4 | 4.9e-07±9.1e-09 | 4.4e-06±6.6e-08 | 1.0e-05±1.7e-07 | 2.0e-05±2.3e-07 | 3.6e-05±5.7e-07 | 5.6e-05±6.4e-07 |
5 | 3.1e-07±1.2e-09 | 4.0e-06±2.5e-08 | 9.6e-06±1.2e-08 | 1.9e-05±3.5e-07 | 3.3e-05±3.0e-07 | 5.3e-05±1.5e-07 |
Version 5 performs about twice as fast as version 4 on nested vectors.
arg, n | ||||||
---|---|---|---|---|---|---|
version | 1 | 10 | 100 | 1000 | 10000 | 100000 |
4 | 3.7e-07±3.8e-09 | 4.3e-07±3.8e-09 | 4.9e-07±8.4e-09 | 5.5e-07±7.6e-09 | 6.1e-07±4.9e-09 | 6.5e-07±6.9e-09 |
5 | 4.0e-07±2.5e-09 | 4.3e-07±2.5e-09 | 4.6e-07±3.5e-09 | 4.9e-07±3.2e-09 | 5.3e-07±2.5e-09 | 5.5e-07±5.9e-09 |
arg, n | ||||||
---|---|---|---|---|---|---|
version | 1 | 2 | 3 | 4 | 5 | 6 |
4 | 2.4e-07±5.0e-09 | 3.3e-07±3.8e-09 | 4.6e-07±1.3e-08 | 5.4e-07±1.1e-08 | 6.7e-07±8.8e-09 | 7.6e-07±1.2e-08 |
5 | 2.1e-07±9.6e-10 | 2.8e-07±2.1e-09 | 3.8e-07±1.0e-09 | 4.5e-07±1.5e-09 | 5.5e-07±3.8e-09 | 6.3e-07±6.9e-09 |
arg, n | ||||||
---|---|---|---|---|---|---|
version | 1 | 10 | 100 | 1000 | 10000 | 100000 |
4 | 1.9e-06±1.9e-08 | 2.0e-06±1.5e-08 | 2.0e-06±5.3e-08 | 2.0e-06±1.1e-08 | 2.1e-06±1.9e-08 | 2.1e-06±2.7e-08 |
5 | 8.1e-07±8.9e-09 | 8.3e-07±7.6e-09 | 8.6e-07±2.1e-09 | 9.0e-07±1.3e-08 | 9.3e-07±6.1e-09 | 9.5e-07±4.7e-09 |
arg, n | ||||||
---|---|---|---|---|---|---|
version | 1 | 2 | 3 | 4 | 5 | 6 |
4 | 4.5e-07±2.5e-09 | 8.7e-07±9.4e-09 | 1.3e-06±2.4e-08 | 1.7e-06±2.5e-08 | 2.1e-06±2.0e-08 | 2.5e-06±4.8e-08 |
5 | 2.3e-07±1.1e-09 | 4.1e-07±5.7e-09 | 5.8e-07±2.8e-09 | 7.4e-07±5.6e-09 | 9.0e-07±8.7e-09 | 1.1e-06±2.2e-08 |
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
Ctrl+k | Jump to recent docs |
← | Move to previous article |
→ | Move to next article |
Ctrl+/ | Jump to the search field |