assoc*
version 5 performance improved across the board, closing the gap with clojure.core/get
.
See the overall summary for benchmarking details. The benchmarks displayed in this document are defined here.
While version 5 of assoc*
is 4 to 17% slower than clojure.core/get
when handling hashmaps, it substantially closed the
performance gap from version 4.
arg, n | |||||||
---|---|---|---|---|---|---|---|
version | 1 | 10 | 100 | 1000 | 10000 | 100000 | 1000000 |
4 | 6.2e-08±2.2e-10 | 1.2e-07±5.4e-10 | 1.3e-07±2.1e-10 | 1.9e-07±9.0e-10 | 2.1e-07±1.4e-09 | 2.4e-07±1.7e-09 | 2.8e-07±2.2e-09 |
5 | 7.1e-08±7.1e-10 | 1.2e-07±1.4e-09 | 1.3e-07±6.6e-10 | 1.9e-07±2.3e-09 | 2.1e-07±1.4e-09 | 2.4e-07±8.9e-10 | 2.7e-07±1.1e-09 |
arg, n | |||||||
---|---|---|---|---|---|---|---|
version | 1 | 10 | 100 | 1000 | 10000 | 100000 | 1000000 |
4 | 2.1e-07±5.6e-10 | 2.8e-07±9.8e-10 | 2.9e-07±1.2e-09 | 3.5e-07±2.3e-09 | 3.7e-07±2.0e-09 | 4.1e-07±3.1e-09 | 4.5e-07±1.6e-09 |
5 | 8.3e-08±3.5e-10 | 1.3e-07±9.2e-10 | 1.4e-07±1.5e-09 | 2.0e-07±2.8e-09 | 2.2e-07±1.8e-09 | 2.5e-07±3.6e-09 | 2.8e-07±2.9e-09 |
Handling lists is indistinguishable between version 4 to version 5.
arg, n | ||||
---|---|---|---|---|
version | 1 | 10 | 100 | 1000 |
4 | 7.9e-07±5.5e-09 | 2.0e-05±1.8e-07 | 1.7e-03±7.5e-06 | 1.6e-01±1.8e-03 |
5 | 7.4e-07±7.3e-09 | 2.0e-05±9.1e-08 | 1.7e-03±1.2e-05 | 1.6e-01±3.1e-04 |
Version 5 handles sequences 40% faster than version 4.
arg, n | |||||||
---|---|---|---|---|---|---|---|
version | 1 | 10 | 100 | 1000 | 10000 | 100000 | 1000000 |
4 | 4.5e-08±5.3e-10 | 5.7e-08±2.1e-10 | 6.9e-08±2.2e-10 | 8.5e-08±5.3e-10 | 1.0e-07±2.5e-09 | 1.1e-07±2.0e-09 | 1.3e-07±2.0e-09 |
5 | 5.1e-08±9.1e-10 | 6.3e-08±9.0e-10 | 7.5e-08±9.7e-10 | 8.9e-08±4.6e-10 | 1.0e-07±4.3e-10 | 1.1e-07±8.1e-10 | 1.3e-07±1.4e-09 |
arg, n | |||||||
---|---|---|---|---|---|---|---|
version | 1 | 10 | 100 | 1000 | 10000 | 100000 | 1000000 |
4 | 2.5e-07±1.2e-09 | 2.8e-07±3.2e-09 | 2.9e-07±8.4e-10 | 3.0e-07±1.9e-09 | 3.2e-07±7.9e-09 | 3.4e-07±7.1e-10 | 3.6e-07±4.9e-09 |
5 | 1.4e-07±1.0e-09 | 1.5e-07±5.4e-10 | 1.6e-07±8.2e-10 | 1.8e-07±1.6e-09 | 1.9e-07±9.6e-10 | 2.0e-07±3.3e-09 | 2.2e-07±1.2e-09 |
Version 5 performance improved noticeably, but still lags clojure.core/assoc
by a factor of two.
arg, n | |||||||
---|---|---|---|---|---|---|---|
version | 1 | 10 | 100 | 1000 | 10000 | 100000 | 1000000 |
4 | 4.7e-08±2.8e-10 | 5.9e-08±3.4e-10 | 7.2e-08±8.5e-10 | 8.5e-08±2.2e-10 | 9.9e-08±8.2e-10 | 1.2e-07±1.3e-09 | 1.3e-07±3.6e-10 |
5 | 4.9e-08±4.9e-10 | 6.1e-08±1.1e-09 | 7.4e-08±1.3e-09 | 8.7e-08±7.7e-10 | 1.0e-07±4.2e-10 | 1.1e-07±5.6e-10 | 1.3e-07±1.4e-09 |
arg, n | |||||||
---|---|---|---|---|---|---|---|
version | 1 | 10 | 100 | 1000 | 10000 | 100000 | 1000000 |
4 | 2.5e-07±6.1e-10 | 2.7e-07±1.3e-09 | 2.9e-07±3.9e-09 | 3.0e-07±7.5e-10 | 3.2e-07±2.2e-09 | 3.4e-07±1.0e-09 | 3.6e-07±8.8e-09 |
5 | 1.4e-07±5.6e-10 | 1.5e-07±5.4e-10 | 1.6e-07±8.7e-10 | 1.8e-07±5.6e-10 | 1.9e-07±1.1e-09 | 2.0e-07±6.7e-10 | 2.1e-07±1.5e-09 |
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 |