Skip to content
Matt Bierner edited this page Feb 15, 2015 · 10 revisions

maattbierner - Feb 15, 2015

hashtrie - 0.2.2
hamt - 0.1.7
hamt_plus - 0.0.5
mori - 0.3.2
persistent-hash-trie - 0.4.2
immutable: 3.6.2

mattbierner-mbp:js-hashtrie-benchmark mattbierner 

> hashtrie-benchmarks@0.0.0 benchmark /Users/mattbierner/Projects/js/js-hashtrie-benchmark
> node run.js

Get nth
hashtrie(10)                  :      7511197.27 +/- 0.59% op/s
hamt(10)                      :      6741623.51 +/- 1.38% op/s
hamt_plus(10)                 :      6260988.01 +/- 1.17% op/s
persistent-hash-trie(10)      :      3287025.27 +/- 1.85% op/s
mori hash_map(10)             :      1125746.64 +/- 2.42% op/s
immutable(10)                 :      2813928.95 +/- 0.26% op/s
hashtrie(100)                 :      6421418.49 +/- 0.57% op/s
hamt(100)                     :      6085976.22 +/- 0.58% op/s
hamt_plus(100)                :      5220959.60 +/- 1.67% op/s
persistent-hash-trie(100)     :      2107834.09 +/- 0.45% op/s
mori hash_map(100)            :      1139256.44 +/- 0.40% op/s
immutable(100)                :      2647598.10 +/- 0.58% op/s
hashtrie(1000)                :      5471727.74 +/- 0.58% op/s
hamt(1000)                    :      5328556.32 +/- 1.58% op/s
hamt_plus(1000)               :      4678952.33 +/- 0.50% op/s
persistent-hash-trie(1000)    :      1185474.47 +/- 0.90% op/s
mori hash_map(1000)           :       510443.31 +/- 2.53% op/s
immutable(1000)               :      2351287.29 +/- 0.67% op/s
hashtrie(10000)               :      4204960.93 +/- 1.55% op/s
hamt(10000)                   :      4736150.74 +/- 0.64% op/s
hamt_plus(10000)              :      4146184.87 +/- 0.56% op/s
persistent-hash-trie(10000)   :       942529.95 +/- 1.36% op/s
mori hash_map(10000)          :       460697.43 +/- 0.72% op/s
immutable(10000)              :      2101945.54 +/- 0.96% op/s
hashtrie(100000)              :      1283184.10 +/- 1.71% op/s
hamt(100000)                  :      1356771.56 +/- 1.47% op/s
hamt_plus(100000)             :      1314218.66 +/- 1.37% op/s
persistent-hash-trie(100000)  :       674803.77 +/- 3.82% op/s
mori hash_map(100000)         :       328878.36 +/- 1.00% op/s
immutable(100000)             :       774108.67 +/- 1.47% op/s


put nth
hashtrie(10)                  :      1373093.60 +/- 0.59% op/s
hamt(10)                      :      1934726.46 +/- 0.70% op/s
hamt_plus(10)                 :      1712341.92 +/- 0.63% op/s
persistent-hash-trie(10)      :       277379.54 +/- 0.68% op/s
mori hash_map(10)             :       829432.86 +/- 0.68% op/s
immutable(10)                 :       846153.80 +/- 0.65% op/s
hashtrie(100)                 :      1761059.31 +/- 0.53% op/s
hamt(100)                     :      1420225.56 +/- 0.84% op/s
hamt_plus(100)                :      1212670.35 +/- 0.80% op/s
persistent-hash-trie(100)     :        58854.02 +/- 0.59% op/s
mori hash_map(100)            :       271577.11 +/- 1.15% op/s
immutable(100)                :       420104.79 +/- 0.42% op/s
hashtrie(1000)                :       962142.67 +/- 0.86% op/s
hamt(1000)                    :      1278208.72 +/- 1.08% op/s
hamt_plus(1000)               :      1215017.47 +/- 0.87% op/s
persistent-hash-trie(1000)    :        53660.94 +/- 0.42% op/s
mori hash_map(1000)           :       506685.71 +/- 0.51% op/s
immutable(1000)               :       288553.82 +/- 0.56% op/s
hashtrie(10000)               :       791558.62 +/- 0.69% op/s
hamt(10000)                   :      1058935.58 +/- 0.90% op/s
hamt_plus(10000)              :       888440.65 +/- 0.90% op/s
persistent-hash-trie(10000)   :        45079.54 +/- 7.22% op/s
mori hash_map(10000)          :       522384.18 +/- 0.51% op/s
immutable(10000)              :       245321.38 +/- 0.51% op/s
hashtrie(100000)              :       786917.63 +/- 0.61% op/s
hamt(100000)                  :       831506.66 +/- 0.84% op/s
hamt_plus(100000)             :       737095.93 +/- 1.32% op/s
persistent-hash-trie(100000)  :        19766.66 +/- 0.46% op/s
mori hash_map(100000)         :       408296.34 +/- 0.61% op/s
immutable(100000)             :       280316.08 +/- 0.37% op/s


Put All
hashtrie(10)                  :       185011.63 +/- 0.58% op/s
hamt(10)                      :       231115.60 +/- 0.62% op/s
hamt_plus(10)                 :       196942.33 +/- 0.63% op/s
persistent-hash-trie(10)      :        32531.94 +/- 0.52% op/s
mori hash_map(10)             :        43909.42 +/- 0.58% op/s
immutable(10)                 :        25257.96 +/- 0.70% op/s
hashtrie(100)                 :        14106.48 +/- 0.59% op/s
hamt(100)                     :        15528.71 +/- 0.71% op/s
hamt_plus(100)                :        13040.63 +/- 1.46% op/s
persistent-hash-trie(100)     :         1044.97 +/- 0.63% op/s
mori hash_map(100)            :         5062.35 +/- 0.56% op/s
immutable(100)                :         3826.22 +/- 0.50% op/s
hashtrie(1000)                :         1103.01 +/- 0.60% op/s
hamt(1000)                    :         1165.76 +/- 0.89% op/s
hamt_plus(1000)               :         1011.08 +/- 0.88% op/s
persistent-hash-trie(1000)    :           60.53 +/- 0.64% op/s
mori hash_map(1000)           :          232.56 +/- 0.62% op/s
immutable(1000)               :          335.53 +/- 1.02% op/s
hashtrie(10000)               :           78.36 +/- 0.92% op/s
hamt(10000)                   :           90.10 +/- 8.24% op/s
hamt_plus(10000)              :           86.65 +/- 0.87% op/s
persistent-hash-trie(10000)   :            4.69 +/- 2.02% op/s
mori hash_map(10000)          :           27.02 +/- 1.26% op/s
immutable(10000)              :           30.06 +/- 0.81% op/s


Put All (transient)
hamt(10)                      :       234116.01 +/- 0.84% op/s
hamt_plus(10)                 :       267358.47 +/- 0.46% op/s
mori hash_map(10)             :        56988.06 +/- 0.75% op/s
immutable(10)                 :        34464.57 +/- 0.42% op/s
hamt(100)                     :        16535.98 +/- 0.79% op/s
hamt_plus(100)                :        23426.27 +/- 0.57% op/s
mori hash_map(100)            :         7294.92 +/- 0.52% op/s
immutable(100)                :         9349.80 +/- 0.59% op/s
hamt(1000)                    :         1213.76 +/- 0.80% op/s
hamt_plus(1000)               :         1874.89 +/- 4.87% op/s
mori hash_map(1000)           :          298.17 +/- 0.52% op/s
immutable(1000)               :         1105.17 +/- 0.48% op/s
hamt(10000)                   :           95.65 +/- 1.26% op/s
hamt_plus(10000)              :          185.63 +/- 0.65% op/s
mori hash_map(10000)          :           35.90 +/- 0.95% op/s
immutable(10000)              :          110.67 +/- 0.82% op/s


remove nth
hashtrie(10)                  :      2194468.18 +/- 0.74% op/s
hamt(10)                      :      2206257.21 +/- 1.03% op/s
hamt_plus(10)                 :      1818564.57 +/- 0.49% op/s
persistent-hash-trie(10)      :       120297.07 +/- 0.47% op/s
mori hash_map(10)             :       800657.08 +/- 0.58% op/s
immutable(10)                 :       724120.88 +/- 0.47% op/s
hashtrie(100)                 :      1450350.06 +/- 0.50% op/s
hamt(100)                     :      1498812.17 +/- 0.63% op/s
hamt_plus(100)                :      1280633.80 +/- 0.61% op/s
persistent-hash-trie(100)     :        45156.03 +/- 0.57% op/s
mori hash_map(100)            :       660726.62 +/- 0.52% op/s
immutable(100)                :       404912.65 +/- 0.58% op/s
hashtrie(1000)                :      1108429.85 +/- 0.52% op/s
hamt(1000)                    :      1244057.68 +/- 0.64% op/s
hamt_plus(1000)               :      1172672.85 +/- 0.59% op/s
persistent-hash-trie(1000)    :        32918.67 +/- 0.57% op/s
mori hash_map(1000)           :       341890.39 +/- 0.76% op/s
immutable(1000)               :       334332.65 +/- 0.65% op/s
hashtrie(10000)               :       771109.31 +/- 0.89% op/s
hamt(10000)                   :       821750.82 +/- 2.01% op/s
hamt_plus(10000)              :       768942.29 +/- 9.95% op/s
persistent-hash-trie(10000)   :        26359.60 +/- 1.33% op/s
mori hash_map(10000)          :       273103.44 +/- 1.56% op/s
immutable(10000)              :       281322.31 +/- 1.90% op/s
hashtrie(100000)              :       500737.33 +/- 1.82% op/s
hamt(100000)                  :       514321.49 +/- 1.85% op/s
hamt_plus(100000)             :       465496.60 +/- 3.68% op/s
persistent-hash-trie(100000)  :        12228.25 +/- 2.11% op/s
mori hash_map(100000)         :       185253.90 +/- 1.83% op/s
immutable(100000)             :       205609.86 +/- 1.28% op/s


Remove All
hashtrie(10)                  :       229974.54 +/- 2.61% op/s
hamt(10)                      :       242630.69 +/- 0.69% op/s
hamt_plus(10)                 :       221772.86 +/- 0.98% op/s
persistent-hash-trie(10)      :        21334.78 +/- 0.74% op/s
mori hash_map(10)             :        92981.83 +/- 1.17% op/s
immutable(10)                 :        99957.42 +/- 2.15% op/s
hashtrie(100)                 :        15046.28 +/- 2.22% op/s
hamt(100)                     :        18383.95 +/- 1.61% op/s
hamt_plus(100)                :        15988.61 +/- 2.64% op/s
persistent-hash-trie(100)     :         1981.74 +/- 1.28% op/s
mori hash_map(100)            :         6381.66 +/- 2.35% op/s
immutable(100)                :         4239.81 +/- 2.41% op/s
hashtrie(1000)                :         1137.03 +/- 1.62% op/s
hamt(1000)                    :         1323.44 +/- 1.15% op/s
hamt_plus(1000)               :         1206.77 +/- 1.42% op/s
persistent-hash-trie(1000)    :          909.95 +/- 0.93% op/s
mori hash_map(1000)           :          304.56 +/- 5.26% op/s
immutable(1000)               :          362.05 +/- 1.04% op/s
hashtrie(10000)               :           81.48 +/- 2.99% op/s
hamt(10000)                   :           95.51 +/- 2.13% op/s
hamt_plus(10000)              :           91.43 +/- 2.03% op/s
persistent-hash-trie(10000)   :          244.46 +/- 1.69% op/s
mori hash_map(10000)          :           30.28 +/- 1.49% op/s
immutable(10000)              :           29.20 +/- 1.31% op/s


Remove All (transient)
hamt(10)                      :       232205.78 +/- 0.33% op/s
hamt_plus(10)                 :       326652.72 +/- 0.33% op/s
mori hash_map(10)             :        63846.81 +/- 0.74% op/s
immutable(10)                 :       186801.10 +/- 0.37% op/s
hamt(100)                     :        17601.65 +/- 1.35% op/s
hamt_plus(100)                :        29494.95 +/- 0.46% op/s
mori hash_map(100)            :         6191.17 +/- 0.90% op/s
immutable(100)                :        16739.63 +/- 1.15% op/s
hamt(1000)                    :         1226.42 +/- 2.67% op/s
hamt_plus(1000)               :         2514.42 +/- 0.84% op/s
mori hash_map(1000)           :          334.46 +/- 3.96% op/s
immutable(1000)               :         1561.61 +/- 0.82% op/s
hamt(10000)                   :           86.79 +/- 1.48% op/s
hamt_plus(10000)              :          193.21 +/- 1.61% op/s
mori hash_map(10000)          :           33.68 +/- 1.53% op/s
immutable(10000)              :          119.50 +/- 2.38% op/s


Count
hashtrie(10)                  :       385590.17 +/- 0.69% op/s
hamt(10)                      :      4391662.91 +/- 0.79% op/s
hamt_plus(10)                 :      4437437.06 +/- 0.97% op/s
persistent-hash-trie(10)      :       177787.52 +/- 1.00% op/s
mori hash_map(10)             :     28939637.58 +/- 2.06% op/s
immutable(10)                 :      2296426.79 +/- 0.70% op/s
hashtrie(100)                 :        42711.26 +/- 0.63% op/s
hamt(100)                     :       405072.67 +/- 0.63% op/s
hamt_plus(100)                :       396134.52 +/- 0.56% op/s
persistent-hash-trie(100)     :         6580.15 +/- 2.30% op/s
mori hash_map(100)            :     30224818.49 +/- 0.92% op/s
immutable(100)                :      2300197.45 +/- 0.74% op/s
hashtrie(1000)                :         3505.59 +/- 0.73% op/s
hamt(1000)                    :        15702.95 +/- 0.81% op/s
hamt_plus(1000)               :        15836.29 +/- 0.79% op/s
persistent-hash-trie(1000)    :          619.39 +/- 1.97% op/s
mori hash_map(1000)           :     30541162.32 +/- 1.23% op/s
immutable(1000)               :      2331859.86 +/- 0.65% op/s
hashtrie(10000)               :          318.40 +/- 1.03% op/s
hamt(10000)                   :         2858.48 +/- 0.73% op/s
hamt_plus(10000)              :         2867.51 +/- 0.72% op/s
persistent-hash-trie(10000)   :          129.86 +/- 2.14% op/s
mori hash_map(10000)          :     30134632.11 +/- 0.88% op/s
immutable(10000)              :      2299397.24 +/- 0.69% op/s


Sum
hashtrie(10)                  :       209443.06 +/- 0.76% op/s
hamt(10)                      :      3212403.60 +/- 0.63% op/s
hamt_plus(10)                 :      3096542.09 +/- 1.23% op/s
persistent-hash-trie(10)      :       211524.05 +/- 2.08% op/s
mori hash_map(10)             :       901841.26 +/- 0.69% op/s
immutable(10)                 :       721317.78 +/- 1.15% op/s
hashtrie(100)                 :        39735.96 +/- 0.76% op/s
hamt(100)                     :       354022.08 +/- 0.80% op/s
hamt_plus(100)                :       355865.20 +/- 0.56% op/s
persistent-hash-trie(100)     :         6767.27 +/- 0.87% op/s
mori hash_map(100)            :       138260.07 +/- 0.58% op/s
immutable(100)                :       139911.46 +/- 1.22% op/s
hashtrie(1000)                :         3531.19 +/- 0.78% op/s
hamt(1000)                    :        15918.68 +/- 0.67% op/s
hamt_plus(1000)               :        16213.59 +/- 0.70% op/s
persistent-hash-trie(1000)    :          626.58 +/- 0.98% op/s
mori hash_map(1000)           :        10121.81 +/- 5.61% op/s
immutable(1000)               :        13924.60 +/- 0.59% op/s
hashtrie(10000)               :          333.58 +/- 0.23% op/s
hamt(10000)                   :         3461.55 +/- 0.08% op/s
hamt_plus(10000)              :         3463.84 +/- 0.03% op/s
persistent-hash-trie(10000)   :          149.91 +/- 0.43% op/s
mori hash_map(10000)          :         1509.89 +/- 0.12% op/s
immutable(10000)              :         1589.00 +/- 0.07% op/s

## Note that someone needs to update this benchmark for immutable 3.6
Keys
hashtrie(10)                  :       528495.20 +/- 0.23% op/s
hamt(10)                      :      2495411.09 +/- 0.32% op/s
hamt_plus(10)                 :      2452570.21 +/- 0.28% op/s
persistent-hash-trie(10)      :       125571.89 +/- 0.17% op/s
mori hash_map(10)             :       340960.25 +/- 0.26% op/s
immutable(10)                 :            0.00 +/- 0.00% op/s
hashtrie(100)                 :        37813.58 +/- 0.18% op/s
hamt(100)                     :       241817.39 +/- 0.17% op/s
hamt_plus(100)                :       220965.80 +/- 0.19% op/s
persistent-hash-trie(100)     :         6623.69 +/- 0.18% op/s
mori hash_map(100)            :        24245.73 +/- 0.17% op/s
immutable(100)                :            0.00 +/- 0.00% op/s
hashtrie(1000)                :         3423.50 +/- 0.18% op/s
hamt(1000)                    :        14023.44 +/- 0.25% op/s
hamt_plus(1000)               :        14124.10 +/- 0.23% op/s
persistent-hash-trie(1000)    :          661.63 +/- 0.22% op/s
mori hash_map(1000)           :         1794.49 +/- 0.20% op/s
immutable(1000)               :            0.00 +/- 0.00% op/s
hashtrie(10000)               :          329.35 +/- 0.24% op/s
hamt(10000)                   :         2478.69 +/- 5.26% op/s
hamt_plus(10000)              :         2656.54 +/- 0.09% op/s
persistent-hash-trie(10000)   :          143.97 +/- 0.21% op/s
mori hash_map(10000)          :          181.52 +/- 0.09% op/s
immutable(10000)              :            0.00 +/- 0.00% op/s

mattbierner - Aug 22, 2014

hashtrie - 0.2.2
hamt - 0.1.7
hamt_plus - 0.0.5
mori - 0.2.9
persistent-hash-trie - 0.4.2
immutable: 2.0.14

^Cbash-3.2$ npm run benchmark

> hashtrie-benchmarks@0.0.0 benchmark /Users/mattbierner/Projects/js/js-hashtrie-benchmark
> node run.js

Get nth
hashtrie(10)                  :      7511632.20 +/- 0.31% op/s
hamt(10)                      :      6979939.13 +/- 0.10% op/s
hamt_plus(10)                 :      6522273.10 +/- 0.17% op/s
persistent-hash-trie(10)      :      4921913.59 +/- 1.57% op/s
mori hash_map(10)             :      1316084.19 +/- 3.16% op/s
immutable(10)                 :      5700177.95 +/- 0.04% op/s
hashtrie(100)                 :      6555214.88 +/- 0.17% op/s
hamt(100)                     :      6203699.29 +/- 0.57% op/s
hamt_plus(100)                :      5841505.87 +/- 0.35% op/s
persistent-hash-trie(100)     :      2041894.48 +/- 0.39% op/s
mori hash_map(100)            :      1404074.55 +/- 0.30% op/s
immutable(100)                :      5247864.27 +/- 0.05% op/s
hashtrie(1000)                :      5343365.37 +/- 0.12% op/s
hamt(1000)                    :      5236062.58 +/- 0.15% op/s
hamt_plus(1000)               :      5341357.67 +/- 0.13% op/s
persistent-hash-trie(1000)    :      1223643.50 +/- 0.37% op/s
mori hash_map(1000)           :       632635.62 +/- 2.50% op/s
immutable(1000)               :      4327571.01 +/- 0.09% op/s
hashtrie(10000)               :      4303093.59 +/- 0.08% op/s
hamt(10000)                   :      4833950.92 +/- 0.05% op/s
hamt_plus(10000)              :      4530083.60 +/- 0.26% op/s
persistent-hash-trie(10000)   :       982138.08 +/- 0.33% op/s
mori hash_map(10000)          :       530052.11 +/- 2.85% op/s
immutable(10000)              :      3821157.09 +/- 0.36% op/s
hashtrie(100000)              :      1284711.84 +/- 0.33% op/s
hamt(100000)                  :      1364168.12 +/- 0.19% op/s
hamt_plus(100000)             :      1357957.75 +/- 0.19% op/s
persistent-hash-trie(100000)  :       745509.90 +/- 0.40% op/s
mori hash_map(100000)         :       385858.21 +/- 1.37% op/s
immutable(100000)             :       997404.10 +/- 0.09% op/s


put nth
hashtrie(10)                  :      2512800.58 +/- 0.49% op/s
hamt(10)                      :      1818039.39 +/- 0.97% op/s
hamt_plus(10)                 :      1627666.23 +/- 0.40% op/s
persistent-hash-trie(10)      :       291202.70 +/- 0.13% op/s
mori hash_map(10)             :       851210.77 +/- 2.17% op/s
immutable(10)                 :      1353151.29 +/- 0.18% op/s
hashtrie(100)                 :       970658.57 +/- 0.10% op/s
hamt(100)                     :      1551450.71 +/- 0.21% op/s
hamt_plus(100)                :      1343554.08 +/- 0.26% op/s
persistent-hash-trie(100)     :        84293.55 +/- 0.60% op/s
mori hash_map(100)            :       846088.92 +/- 0.21% op/s
immutable(100)                :       756339.00 +/- 0.16% op/s
hashtrie(1000)                :       772642.01 +/- 0.21% op/s
hamt(1000)                    :      1458878.87 +/- 0.22% op/s
hamt_plus(1000)               :      1203495.85 +/- 11.25% op/s
persistent-hash-trie(1000)    :        56850.81 +/- 0.13% op/s
mori hash_map(1000)           :       696515.28 +/- 0.25% op/s
immutable(1000)               :       672742.68 +/- 0.08% op/s
hashtrie(10000)               :      1039334.89 +/- 0.18% op/s
hamt(10000)                   :      1023875.36 +/- 0.32% op/s
hamt_plus(10000)              :       898370.64 +/- 0.19% op/s
persistent-hash-trie(10000)   :        49884.62 +/- 0.17% op/s
mori hash_map(10000)          :       344377.56 +/- 0.30% op/s
immutable(10000)              :       606094.36 +/- 0.10% op/s
hashtrie(100000)              :       976285.73 +/- 0.13% op/s
hamt(100000)                  :      1108453.71 +/- 0.44% op/s
hamt_plus(100000)             :      1013860.68 +/- 0.15% op/s
persistent-hash-trie(100000)  :        24314.80 +/- 0.23% op/s
mori hash_map(100000)         :       546179.05 +/- 0.25% op/s
immutable(100000)             :       485820.51 +/- 0.15% op/s


Put All
hashtrie(10)                  :       208932.26 +/- 0.23% op/s
hamt(10)                      :       216746.91 +/- 0.58% op/s
hamt_plus(10)                 :       191440.07 +/- 0.60% op/s
persistent-hash-trie(10)      :        32479.83 +/- 0.12% op/s
mori hash_map(10)             :        81881.58 +/- 0.34% op/s
immutable(10)                 :       150025.40 +/- 0.37% op/s
hashtrie(100)                 :        13570.85 +/- 0.29% op/s
hamt(100)                     :        15580.06 +/- 0.36% op/s
hamt_plus(100)                :        14227.84 +/- 0.37% op/s
persistent-hash-trie(100)     :         1037.51 +/- 0.36% op/s
mori hash_map(100)            :         6849.22 +/- 0.33% op/s
immutable(100)                :         9179.86 +/- 5.74% op/s
hashtrie(1000)                :         1174.68 +/- 0.16% op/s
hamt(1000)                    :         1297.26 +/- 0.12% op/s
hamt_plus(1000)               :         1195.93 +/- 0.11% op/s
persistent-hash-trie(1000)    :           63.70 +/- 0.15% op/s
mori hash_map(1000)           :          331.50 +/- 0.13% op/s
immutable(1000)               :          765.69 +/- 0.13% op/s
hashtrie(10000)               :           84.30 +/- 0.29% op/s
hamt(10000)                   :           97.61 +/- 0.46% op/s
hamt_plus(10000)              :           90.28 +/- 0.40% op/s
persistent-hash-trie(10000)   :            4.87 +/- 0.37% op/s
mori hash_map(10000)          :           35.07 +/- 0.70% op/s
immutable(10000)              :           56.88 +/- 0.28% op/s


Put All (transient)
hamt(10)                      :       234006.71 +/- 0.21% op/s
hamt_plus(10)                 :       279002.60 +/- 5.76% op/s
mori hash_map(10)             :        86702.21 +/- 0.31% op/s
immutable(10)                 :       263701.90 +/- 0.10% op/s
hamt(100)                     :        17021.19 +/- 0.20% op/s
hamt_plus(100)                :        25552.28 +/- 0.13% op/s
mori hash_map(100)            :         9692.65 +/- 0.16% op/s
immutable(100)                :        24925.90 +/- 0.15% op/s
hamt(1000)                    :         1275.99 +/- 0.14% op/s
hamt_plus(1000)               :         2181.78 +/- 0.16% op/s
mori hash_map(1000)           :          389.97 +/- 0.35% op/s
immutable(1000)               :         2198.48 +/- 0.20% op/s
hamt(10000)                   :           95.83 +/- 0.48% op/s
hamt_plus(10000)              :          197.03 +/- 0.32% op/s
mori hash_map(10000)          :           43.79 +/- 1.05% op/s
immutable(10000)              :          194.19 +/- 0.46% op/s


remove nth
hashtrie(10)                  :      1802222.95 +/- 0.21% op/s
hamt(10)                      :      2390302.65 +/- 0.52% op/s
hamt_plus(10)                 :      2025999.65 +/- 0.11% op/s
persistent-hash-trie(10)      :       145082.50 +/- 0.17% op/s
mori hash_map(10)             :       990310.49 +/- 0.46% op/s
immutable(10)                 :      1411993.20 +/- 0.12% op/s
hashtrie(100)                 :      1391384.44 +/- 0.11% op/s
hamt(100)                     :      1585708.74 +/- 0.16% op/s
hamt_plus(100)                :      1368694.60 +/- 0.17% op/s
persistent-hash-trie(100)     :        48727.79 +/- 0.20% op/s
mori hash_map(100)            :       770951.81 +/- 0.16% op/s
immutable(100)                :       872646.97 +/- 0.22% op/s
hashtrie(1000)                :      1039030.14 +/- 0.20% op/s
hamt(1000)                    :      1383482.57 +/- 0.21% op/s
hamt_plus(1000)               :      1134457.11 +/- 9.53% op/s
persistent-hash-trie(1000)    :        34321.78 +/- 0.14% op/s
mori hash_map(1000)           :       418554.41 +/- 0.42% op/s
immutable(1000)               :       705939.66 +/- 0.13% op/s
hashtrie(10000)               :       826884.34 +/- 0.11% op/s
hamt(10000)                   :       978623.11 +/- 0.97% op/s
hamt_plus(10000)              :       847850.95 +/- 0.49% op/s
persistent-hash-trie(10000)   :        27160.81 +/- 0.26% op/s
mori hash_map(10000)          :       322444.08 +/- 0.31% op/s
immutable(10000)              :       547460.16 +/- 0.90% op/s
hashtrie(100000)              :       490788.70 +/- 0.28% op/s
hamt(100000)                  :       568979.55 +/- 0.42% op/s
hamt_plus(100000)             :       515683.97 +/- 0.15% op/s
persistent-hash-trie(100000)  :        12246.10 +/- 4.24% op/s
mori hash_map(100000)         :       215042.76 +/- 9.90% op/s
immutable(100000)             :       349872.96 +/- 0.17% op/s


Remove All
hashtrie(10)                  :       210962.76 +/- 0.17% op/s
hamt(10)                      :       272097.34 +/- 0.13% op/s
hamt_plus(10)                 :       229851.87 +/- 0.52% op/s
persistent-hash-trie(10)      :        20723.43 +/- 0.08% op/s
mori hash_map(10)             :       105237.20 +/- 0.18% op/s
immutable(10)                 :       176039.80 +/- 0.07% op/s
hashtrie(100)                 :        15580.91 +/- 0.13% op/s
hamt(100)                     :        19894.79 +/- 0.17% op/s
hamt_plus(100)                :        17353.67 +/- 0.19% op/s
persistent-hash-trie(100)     :         2372.86 +/- 0.10% op/s
mori hash_map(100)            :         7514.86 +/- 0.19% op/s
immutable(100)                :         9914.93 +/- 0.25% op/s
hashtrie(1000)                :         1132.96 +/- 0.19% op/s
hamt(1000)                    :         1381.92 +/- 0.21% op/s
hamt_plus(1000)               :         1250.46 +/- 0.09% op/s
persistent-hash-trie(1000)    :          899.14 +/- 0.29% op/s
mori hash_map(1000)           :          394.39 +/- 0.77% op/s
immutable(1000)               :          751.61 +/- 0.31% op/s
hashtrie(10000)               :           79.04 +/- 1.17% op/s
hamt(10000)                   :           99.08 +/- 6.28% op/s
hamt_plus(10000)              :           96.16 +/- 0.11% op/s
persistent-hash-trie(10000)   :          267.23 +/- 0.08% op/s
mori hash_map(10000)          :           37.25 +/- 0.87% op/s
immutable(10000)              :           57.41 +/- 0.56% op/s


Remove All (transient)
hamt(10)                      :       282925.00 +/- 0.14% op/s
hamt_plus(10)                 :       329006.66 +/- 0.15% op/s
mori hash_map(10)             :        79376.68 +/- 1.05% op/s
immutable(10)                 :       319614.99 +/- 0.16% op/s
hamt(100)                     :        19348.40 +/- 0.24% op/s
hamt_plus(100)                :        29932.08 +/- 0.21% op/s
mori hash_map(100)            :         7749.40 +/- 0.13% op/s
immutable(100)                :        31425.55 +/- 0.25% op/s
hamt(1000)                    :         1399.96 +/- 0.18% op/s
hamt_plus(1000)               :         2676.05 +/- 0.25% op/s
mori hash_map(1000)           :          443.97 +/- 3.82% op/s
immutable(1000)               :         2645.33 +/- 0.11% op/s
hamt(10000)                   :          106.51 +/- 0.08% op/s
hamt_plus(10000)              :          218.63 +/- 0.17% op/s
mori hash_map(10000)          :           35.79 +/- 1.36% op/s
immutable(10000)              :          217.29 +/- 0.62% op/s


Count
hashtrie(10)                  :       565967.34 +/- 0.14% op/s
hamt(10)                      :      5613490.34 +/- 0.75% op/s
hamt_plus(10)                 :      5411658.31 +/- 0.22% op/s
persistent-hash-trie(10)      :       174030.62 +/- 2.10% op/s
mori hash_map(10)             :     30956223.59 +/- 0.29% op/s
immutable(10)                 :     52288398.45 +/- 1.65% op/s
hashtrie(100)                 :        37025.82 +/- 0.10% op/s
hamt(100)                     :       307384.02 +/- 0.07% op/s
hamt_plus(100)                :       300958.55 +/- 0.05% op/s
persistent-hash-trie(100)     :         6771.60 +/- 0.35% op/s
mori hash_map(100)            :     30922902.20 +/- 1.13% op/s
immutable(100)                :     48741887.53 +/- 0.55% op/s
hashtrie(1000)                :         3664.80 +/- 0.01% op/s
hamt(1000)                    :        17030.77 +/- 0.06% op/s
hamt_plus(1000)               :        16813.14 +/- 0.05% op/s
persistent-hash-trie(1000)    :          680.33 +/- 0.37% op/s
mori hash_map(1000)           :     30007311.22 +/- 0.51% op/s
immutable(1000)               :     49234305.69 +/- 0.58% op/s
hashtrie(10000)               :          346.60 +/- 0.03% op/s
hamt(10000)                   :         3292.49 +/- 0.02% op/s
hamt_plus(10000)              :         3254.86 +/- 0.02% op/s
persistent-hash-trie(10000)   :          156.40 +/- 0.60% op/s
mori hash_map(10000)          :     31069110.07 +/- 1.00% op/s
immutable(10000)              :     50681919.21 +/- 0.25% op/s


Sum
hashtrie(10)                  :       368898.95 +/- 0.08% op/s
hamt(10)                      :      3870930.98 +/- 0.12% op/s
hamt_plus(10)                 :      3738755.47 +/- 0.34% op/s
persistent-hash-trie(10)      :       240181.64 +/- 0.23% op/s
mori hash_map(10)             :      1380976.94 +/- 0.18% op/s
immutable(10)                 :      1234720.95 +/- 0.62% op/s
hashtrie(100)                 :        46494.92 +/- 0.12% op/s
hamt(100)                     :       321133.93 +/- 0.03% op/s
hamt_plus(100)                :       321985.14 +/- 0.05% op/s
persistent-hash-trie(100)     :         6387.44 +/- 0.26% op/s
mori hash_map(100)            :       150873.76 +/- 0.04% op/s
immutable(100)                :       181085.87 +/- 0.79% op/s
hashtrie(1000)                :         3646.53 +/- 0.02% op/s
hamt(1000)                    :        16305.33 +/- 0.07% op/s
hamt_plus(1000)               :        16272.14 +/- 0.10% op/s
persistent-hash-trie(1000)    :          665.98 +/- 0.38% op/s
mori hash_map(1000)           :        11636.45 +/- 0.01% op/s
immutable(1000)               :        15688.96 +/- 0.46% op/s
hashtrie(10000)               :          339.16 +/- 0.04% op/s
hamt(10000)                   :         3466.85 +/- 0.03% op/s
hamt_plus(10000)              :         3402.40 +/- 0.09% op/s
persistent-hash-trie(10000)   :          138.49 +/- 1.90% op/s
mori hash_map(10000)          :         1558.90 +/- 0.02% op/s
immutable(10000)              :         1825.69 +/- 0.04% op/s


Keys
hashtrie(10)                  :       464507.34 +/- 0.23% op/s
hamt(10)                      :      2446808.10 +/- 0.15% op/s
hamt_plus(10)                 :      2409068.62 +/- 0.54% op/s
persistent-hash-trie(10)      :       144883.46 +/- 0.17% op/s
mori hash_map(10)             :       342341.51 +/- 0.28% op/s
immutable(10)                 :       178828.76 +/- 6.61% op/s
hashtrie(100)                 :        39283.61 +/- 0.53% op/s
hamt(100)                     :       251624.65 +/- 0.11% op/s
hamt_plus(100)                :       235286.56 +/- 0.13% op/s
persistent-hash-trie(100)     :         6764.09 +/- 0.15% op/s
mori hash_map(100)            :        27687.76 +/- 0.15% op/s
immutable(100)                :        85132.29 +/- 5.09% op/s
hashtrie(1000)                :         3576.17 +/- 1.11% op/s
hamt(1000)                    :        13657.80 +/- 0.12% op/s
hamt_plus(1000)               :        13592.52 +/- 0.12% op/s
persistent-hash-trie(1000)    :          636.53 +/- 0.14% op/s
mori hash_map(1000)           :         2232.13 +/- 0.15% op/s
immutable(1000)               :        11398.61 +/- 0.52% op/s
hashtrie(10000)               :          330.80 +/- 0.21% op/s
hamt(10000)                   :         2655.84 +/- 0.14% op/s
hamt_plus(10000)              :         2514.25 +/- 4.56% op/s
persistent-hash-trie(10000)   :          153.33 +/- 0.17% op/s
mori hash_map(10000)          :          209.71 +/- 0.12% op/s
immutable(10000)              :         1267.94 +/- 0.22% op/s

mattbierner - Aug 18, 2014

hashtrie - 0.2.2
hamt - 0.1.4
hamt_plus - 0.0.0
mori - 0.2.9
persistent-hash-trie - 0.4.2
immutable: 2.0.11

bash-3.2$ npm run benchmark

> hashtrie-benchmarks@0.0.0 benchmark /Users/mattbierner/Projects/js/js-hashtrie-benchmark
> node run.js

Get nth
hashtrie(10)                  :      7713358.86 +/- 0.50% op/s
hamt(10)                      :      6703898.95 +/- 0.09% op/s
hamt_plus(10)                 :      6202960.35 +/- 0.17% op/s
persistent-hash-trie(10)      :      3957727.24 +/- 2.54% op/s
mori hash_map(10)             :      1431293.46 +/- 0.88% op/s
immutable(10)                 :      2855468.54 +/- 0.45% op/s
hashtrie(100)                 :      6531507.77 +/- 0.07% op/s
hamt(100)                     :      6043711.46 +/- 2.15% op/s
hamt_plus(100)                :      5346262.02 +/- 0.08% op/s
persistent-hash-trie(100)     :      2210603.65 +/- 0.22% op/s
mori hash_map(100)            :      1360271.45 +/- 0.68% op/s
immutable(100)                :      2259680.77 +/- 0.24% op/s
hashtrie(1000)                :      5405629.76 +/- 0.08% op/s
hamt(1000)                    :      5419084.86 +/- 0.08% op/s
hamt_plus(1000)               :      4868667.26 +/- 0.09% op/s
persistent-hash-trie(1000)    :      1195116.53 +/- 3.55% op/s
mori hash_map(1000)           :       675569.41 +/- 0.46% op/s
immutable(1000)               :       804037.05 +/- 2.72% op/s
hashtrie(10000)               :      4509367.45 +/- 0.09% op/s
hamt(10000)                   :      4823390.55 +/- 0.28% op/s
hamt_plus(10000)              :      4280763.68 +/- 0.19% op/s
persistent-hash-trie(10000)   :       983086.93 +/- 0.67% op/s
mori hash_map(10000)          :       517906.78 +/- 2.89% op/s
immutable(10000)              :       661988.81 +/- 0.51% op/s
hashtrie(100000)              :      1346252.62 +/- 0.07% op/s
hamt(100000)                  :      1431712.88 +/- 0.12% op/s
hamt_plus(100000)             :      1355807.28 +/- 0.73% op/s
persistent-hash-trie(100000)  :       746848.98 +/- 0.41% op/s
mori hash_map(100000)         :       369715.08 +/- 4.55% op/s
immutable(100000)             :       355209.46 +/- 0.99% op/s


put nth
hashtrie(10)                  :      2376320.02 +/- 0.43% op/s
hamt(10)                      :      1920719.73 +/- 0.43% op/s
hamt_plus(10)                 :      1727984.56 +/- 0.15% op/s
persistent-hash-trie(10)      :       106005.82 +/- 0.13% op/s
mori hash_map(10)             :       750003.41 +/- 9.06% op/s
immutable(10)                 :       923538.09 +/- 0.13% op/s
hashtrie(100)                 :      1666020.70 +/- 0.29% op/s
hamt(100)                     :      1443700.84 +/- 0.11% op/s
hamt_plus(100)                :      1320160.03 +/- 0.15% op/s
persistent-hash-trie(100)     :        72044.75 +/- 0.15% op/s
mori hash_map(100)            :       810379.69 +/- 0.54% op/s
immutable(100)                :       408671.96 +/- 0.31% op/s
hashtrie(1000)                :       851537.60 +/- 0.10% op/s
hamt(1000)                    :      1446222.92 +/- 0.19% op/s
hamt_plus(1000)               :      1307335.52 +/- 0.21% op/s
persistent-hash-trie(1000)    :        49938.88 +/- 0.20% op/s
mori hash_map(1000)           :       767085.33 +/- 0.34% op/s
immutable(1000)               :       212738.71 +/- 0.19% op/s
hashtrie(10000)               :       987502.26 +/- 0.28% op/s
hamt(10000)                   :      1134860.21 +/- 0.16% op/s
hamt_plus(10000)              :      1031681.08 +/- 0.34% op/s
persistent-hash-trie(10000)   :        53389.64 +/- 0.29% op/s
mori hash_map(10000)          :       568017.48 +/- 0.35% op/s
immutable(10000)              :       189080.79 +/- 0.23% op/s
hashtrie(100000)              :       765287.56 +/- 0.27% op/s
hamt(100000)                  :       767875.80 +/- 0.33% op/s
hamt_plus(100000)             :       697484.37 +/- 0.36% op/s
persistent-hash-trie(100000)  :        20885.28 +/- 0.29% op/s
mori hash_map(100000)         :       519385.69 +/- 0.38% op/s
immutable(100000)             :       339469.67 +/- 0.21% op/s


Put All
hashtrie(10)                  :       200020.99 +/- 0.17% op/s
hamt(10)                      :       219307.07 +/- 0.11% op/s
hamt_plus(10)                 :       193788.48 +/- 6.91% op/s
persistent-hash-trie(10)      :        38416.68 +/- 1.54% op/s
mori hash_map(10)             :        68483.49 +/- 0.22% op/s
immutable(10)                 :        52045.45 +/- 0.11% op/s
hashtrie(100)                 :        15600.56 +/- 0.08% op/s
hamt(100)                     :        16226.33 +/- 0.12% op/s
hamt_plus(100)                :        14318.20 +/- 0.16% op/s
persistent-hash-trie(100)     :         1016.63 +/- 0.20% op/s
mori hash_map(100)            :         6845.45 +/- 0.15% op/s
immutable(100)                :         4442.48 +/- 0.09% op/s
hashtrie(1000)                :         1183.15 +/- 0.20% op/s
hamt(1000)                    :         1225.15 +/- 0.18% op/s
hamt_plus(1000)               :         1084.81 +/- 0.24% op/s
persistent-hash-trie(1000)    :           62.87 +/- 0.25% op/s
mori hash_map(1000)           :          316.21 +/- 0.23% op/s
immutable(1000)               :          252.72 +/- 0.26% op/s
hashtrie(10000)               :           85.29 +/- 0.06% op/s
hamt(10000)                   :           92.54 +/- 7.66% op/s
hamt_plus(10000)              :           89.44 +/- 0.51% op/s
persistent-hash-trie(10000)   :            4.90 +/- 0.27% op/s
mori hash_map(10000)          :           35.36 +/- 1.03% op/s
immutable(10000)              :           23.52 +/- 0.91% op/s


Put All (transient)
hamt(10)                      :       232142.92 +/- 0.11% op/s
hamt_plus(10)                 :       292696.47 +/- 0.18% op/s
mori hash_map(10)             :       121193.90 +/- 0.40% op/s
immutable(10)                 :       168030.32 +/- 0.74% op/s
hamt(100)                     :        16506.81 +/- 0.15% op/s
hamt_plus(100)                :        25279.75 +/- 4.62% op/s
mori hash_map(100)            :         9203.76 +/- 0.13% op/s
immutable(100)                :        12086.63 +/- 0.10% op/s
hamt(1000)                    :         1258.51 +/- 0.11% op/s
hamt_plus(1000)               :         2244.81 +/- 0.08% op/s
mori hash_map(1000)           :          374.99 +/- 0.22% op/s
immutable(1000)               :          529.28 +/- 0.17% op/s
hamt(10000)                   :           95.26 +/- 0.59% op/s
hamt_plus(10000)              :          213.44 +/- 0.25% op/s
mori hash_map(10000)          :           45.80 +/- 0.40% op/s
immutable(10000)              :           50.88 +/- 0.75% op/s


remove nth
hashtrie(10)                  :      1959236.37 +/- 0.23% op/s
hamt(10)                      :      2132876.18 +/- 0.51% op/s
hamt_plus(10)                 :      1889326.85 +/- 0.27% op/s
persistent-hash-trie(10)      :       146147.63 +/- 0.12% op/s
mori hash_map(10)             :      1012533.57 +/- 0.16% op/s
immutable(10)                 :       610131.36 +/- 9.53% op/s
hashtrie(100)                 :      1409914.00 +/- 0.19% op/s
hamt(100)                     :      1584637.44 +/- 0.13% op/s
hamt_plus(100)                :      1476488.65 +/- 0.12% op/s
persistent-hash-trie(100)     :        49941.00 +/- 0.18% op/s
mori hash_map(100)            :       824012.60 +/- 0.12% op/s
immutable(100)                :       427724.71 +/- 0.16% op/s
hashtrie(1000)                :      1093275.04 +/- 0.15% op/s
hamt(1000)                    :      1298339.48 +/- 0.16% op/s
hamt_plus(1000)               :      1262703.25 +/- 0.16% op/s
persistent-hash-trie(1000)    :        33837.96 +/- 0.19% op/s
mori hash_map(1000)           :       417911.16 +/- 0.53% op/s
immutable(1000)               :       255074.67 +/- 0.31% op/s
hashtrie(10000)               :       767336.93 +/- 0.12% op/s
hamt(10000)                   :       907807.80 +/- 0.26% op/s
hamt_plus(10000)              :       835149.55 +/- 0.96% op/s
persistent-hash-trie(10000)   :        27088.50 +/- 0.30% op/s
mori hash_map(10000)          :       299571.33 +/- 10.95% op/s
immutable(10000)              :       210573.69 +/- 0.19% op/s
hashtrie(100000)              :       510552.60 +/- 0.19% op/s
hamt(100000)                  :       565377.38 +/- 0.12% op/s
hamt_plus(100000)             :       558210.39 +/- 0.09% op/s
persistent-hash-trie(100000)  :        12550.82 +/- 2.35% op/s
mori hash_map(100000)         :       216129.32 +/- 0.67% op/s
immutable(100000)             :       139919.26 +/- 0.35% op/s


Remove All
hashtrie(10)                  :       248185.74 +/- 0.23% op/s
hamt(10)                      :       269533.30 +/- 0.18% op/s
hamt_plus(10)                 :       218085.63 +/- 0.57% op/s
persistent-hash-trie(10)      :        15627.13 +/- 0.14% op/s
mori hash_map(10)             :        94359.06 +/- 6.12% op/s
immutable(10)                 :        73463.56 +/- 0.11% op/s
hashtrie(100)                 :        15526.58 +/- 0.36% op/s
hamt(100)                     :        20160.80 +/- 0.15% op/s
hamt_plus(100)                :        17457.14 +/- 0.14% op/s
persistent-hash-trie(100)     :         2387.59 +/- 0.20% op/s
mori hash_map(100)            :         8015.05 +/- 0.08% op/s
immutable(100)                :         5026.30 +/- 0.17% op/s
hashtrie(1000)                :         1183.46 +/- 0.14% op/s
hamt(1000)                    :         1471.75 +/- 0.07% op/s
hamt_plus(1000)               :         1296.91 +/- 0.28% op/s
persistent-hash-trie(1000)    :          901.99 +/- 0.26% op/s
mori hash_map(1000)           :          422.64 +/- 0.37% op/s
immutable(1000)               :          270.09 +/- 0.43% op/s
hashtrie(10000)               :           80.81 +/- 0.39% op/s
hamt(10000)                   :          101.16 +/- 0.10% op/s
hamt_plus(10000)              :           86.51 +/- 1.55% op/s
persistent-hash-trie(10000)   :          246.46 +/- 0.20% op/s
mori hash_map(10000)          :           36.03 +/- 8.90% op/s
immutable(10000)              :           22.49 +/- 1.48% op/s


Remove All (transient)
hamt(10)                      :       274408.63 +/- 0.11% op/s
hamt_plus(10)                 :       331620.29 +/- 0.15% op/s
mori hash_map(10)             :        75995.50 +/- 0.99% op/s
immutable(10)                 :       128441.70 +/- 0.16% op/s
hamt(100)                     :        19891.81 +/- 0.12% op/s
hamt_plus(100)                :        32083.81 +/- 0.17% op/s
mori hash_map(100)            :         7346.81 +/- 0.08% op/s
immutable(100)                :        11147.07 +/- 0.21% op/s
hamt(1000)                    :         1447.24 +/- 0.13% op/s
hamt_plus(1000)               :         2941.02 +/- 0.21% op/s
mori hash_map(1000)           :          454.55 +/- 1.25% op/s
immutable(1000)               :          546.26 +/- 3.02% op/s
hamt(10000)                   :           77.90 +/- 1.37% op/s
hamt_plus(10000)              :          226.66 +/- 2.34% op/s
mori hash_map(10000)          :           40.94 +/- 3.84% op/s
immutable(10000)              :           52.09 +/- 1.73% op/s


Count
hashtrie(10)                  :       590337.93 +/- 0.07% op/s
hamt(10)                      :      7563215.11 +/- 0.05% op/s
hamt_plus(10)                 :      7124316.21 +/- 0.39% op/s
persistent-hash-trie(10)      :       233545.13 +/- 0.36% op/s
mori hash_map(10)             :     28267218.72 +/- 0.13% op/s
immutable(10)                 :     45333250.15 +/- 2.51% op/s
hashtrie(100)                 :        39717.84 +/- 0.09% op/s
hamt(100)                     :       389816.60 +/- 0.16% op/s
hamt_plus(100)                :       383520.86 +/- 0.10% op/s
persistent-hash-trie(100)     :         6134.49 +/- 2.30% op/s
mori hash_map(100)            :     29013229.19 +/- 0.59% op/s
immutable(100)                :     43573540.87 +/- 2.19% op/s
hashtrie(1000)                :         3699.31 +/- 0.03% op/s
hamt(1000)                    :        16965.13 +/- 0.10% op/s
hamt_plus(1000)               :        17002.07 +/- 0.19% op/s
persistent-hash-trie(1000)    :          660.01 +/- 0.30% op/s
mori hash_map(1000)           :     29101083.21 +/- 0.45% op/s
immutable(1000)               :     43154276.24 +/- 0.21% op/s
hashtrie(10000)               :          344.67 +/- 0.17% op/s
hamt(10000)                   :         3254.76 +/- 0.10% op/s
hamt_plus(10000)              :         3205.78 +/- 0.02% op/s
persistent-hash-trie(10000)   :          152.56 +/- 0.32% op/s
mori hash_map(10000)          :     28396723.55 +/- 0.19% op/s
immutable(10000)              :     44342875.50 +/- 2.25% op/s


Sum
hashtrie(10)                  :       548902.15 +/- 5.71% op/s
hamt(10)                      :      5506160.64 +/- 0.19% op/s
hamt_plus(10)                 :      4777638.86 +/- 4.42% op/s
persistent-hash-trie(10)      :       157118.24 +/- 1.40% op/s
mori hash_map(10)             :      1609958.75 +/- 0.25% op/s
immutable(10)                 :       336365.44 +/- 1.32% op/s
hashtrie(100)                 :        39251.79 +/- 0.39% op/s
hamt(100)                     :       332819.37 +/- 0.87% op/s
hamt_plus(100)                :       330184.94 +/- 0.38% op/s
persistent-hash-trie(100)     :         6356.95 +/- 1.14% op/s
mori hash_map(100)            :       143423.42 +/- 0.53% op/s
immutable(100)                :         8581.52 +/- 0.17% op/s
hashtrie(1000)                :         3590.74 +/- 0.10% op/s
hamt(1000)                    :        17385.23 +/- 0.95% op/s
hamt_plus(1000)               :        16476.81 +/- 0.13% op/s
persistent-hash-trie(1000)    :          639.78 +/- 0.22% op/s
mori hash_map(1000)           :        11193.30 +/- 0.93% op/s
immutable(1000)               :          994.94 +/- 0.11% op/s
hashtrie(10000)               :          336.83 +/- 0.90% op/s
hamt(10000)                   :         3375.32 +/- 1.25% op/s
hamt_plus(10000)              :         3382.66 +/- 1.98% op/s
persistent-hash-trie(10000)   :          143.80 +/- 1.51% op/s
mori hash_map(10000)          :         1480.30 +/- 1.60% op/s
immutable(10000)              :          122.50 +/- 0.57% op/s


 Keys
hashtrie(10)                  :       381923.24 +/- 0.24% op/s
hamt(10)                      :      2310032.07 +/- 0.12% op/s
hamt_plus(10)                 :      2690158.53 +/- 0.32% op/s
persistent-hash-trie(10)      :       184997.69 +/- 0.18% op/s
mori hash_map(10)             :       376637.35 +/- 0.21% op/s
immutable(10)                 :        85266.53 +/- 5.08% op/s
hashtrie(100)                 :        37133.17 +/- 0.53% op/s
hamt(100)                     :       257927.82 +/- 0.14% op/s
hamt_plus(100)                :       268325.55 +/- 0.13% op/s
persistent-hash-trie(100)     :         6881.87 +/- 0.16% op/s
mori hash_map(100)            :        26717.75 +/- 0.18% op/s
immutable(100)                :         8863.70 +/- 1.06% op/s
hashtrie(1000)                :         3262.12 +/- 4.48% op/s
hamt(1000)                    :        14665.25 +/- 0.69% op/s
hamt_plus(1000)               :        14651.92 +/- 2.86% op/s
persistent-hash-trie(1000)    :          654.06 +/- 0.23% op/s
mori hash_map(1000)           :         2104.06 +/- 1.58% op/s
immutable(1000)               :          923.88 +/- 0.25% op/s
hashtrie(10000)               :          325.30 +/- 1.30% op/s
hamt(10000)                   :         2610.66 +/- 0.70% op/s
hamt_plus(10000)              :         2619.05 +/- 0.90% op/s
persistent-hash-trie(10000)   :          146.49 +/- 1.00% op/s
mori hash_map(10000)          :          193.92 +/- 0.53% op/s
immutable(10000)              :          120.52 +/- 0.18% op/s

mattbierner - Aug 2, 2014

hashtrie - 0.2.2
hamt - 0.1.4
mori - 0.2.6
persistent-hash-trie - 0.4.2
immutable: 2.0.3

bash-3.2$ npm run benchmark

> hashtrie-benchmarks@0.0.0 benchmark /Users/mattbierner/Projects/js/js-hashtrie-benchmark
> node run.js

Get nth
hashtrie(10)                  :      7881929.26 +/- 0.18% op/s
hamt(10)                      :      7237366.60 +/- 0.32% op/s
persistent-hash-trie(10)      :      3766431.86 +/- 2.59% op/s
mori hash_map(10)             :      1483920.50 +/- 0.65% op/s
immutable(10)                 :      3005374.02 +/- 0.43% op/s
hashtrie(100)                 :      6222234.83 +/- 2.82% op/s
hamt(100)                     :      5969867.57 +/- 1.64% op/s
persistent-hash-trie(100)     :      1970020.02 +/- 2.17% op/s
mori hash_map(100)            :      1266829.15 +/- 1.64% op/s
immutable(100)                :      2255267.52 +/- 0.52% op/s
hashtrie(1000)                :      5444077.21 +/- 0.46% op/s
hamt(1000)                    :      5313148.53 +/- 1.85% op/s
persistent-hash-trie(1000)    :      1206103.85 +/- 0.64% op/s
mori hash_map(1000)           :       655190.11 +/- 2.56% op/s
immutable(1000)               :       772982.94 +/- 2.40% op/s
hashtrie(10000)               :      4443745.21 +/- 0.51% op/s
hamt(10000)                   :      4693566.35 +/- 0.40% op/s
persistent-hash-trie(10000)   :       920975.08 +/- 1.66% op/s
mori hash_map(10000)          :       560042.71 +/- 0.68% op/s
immutable(10000)              :       583629.11 +/- 2.47% op/s
hashtrie(100000)              :      1383708.01 +/- 0.77% op/s
hamt(100000)                  :      1460863.55 +/- 0.67% op/s
persistent-hash-trie(100000)  :       693671.86 +/- 3.81% op/s
mori hash_map(100000)         :       363093.26 +/- 4.69% op/s
immutable(100000)             :       343486.60 +/- 2.38% op/s


put nth
hashtrie(10)                  :      1109032.27 +/- 10.48% op/s
hamt(10)                      :      1428560.09 +/- 0.87% op/s
persistent-hash-trie(10)      :       289025.44 +/- 1.59% op/s
mori hash_map(10)             :       343552.46 +/- 2.85% op/s
immutable(10)                 :       379771.52 +/- 1.65% op/s
hashtrie(100)                 :      1118338.02 +/- 0.27% op/s
hamt(100)                     :      1414805.43 +/- 0.16% op/s
persistent-hash-trie(100)     :        83093.77 +/- 1.56% op/s
mori hash_map(100)            :       796620.90 +/- 0.40% op/s
immutable(100)                :       567093.21 +/- 0.66% op/s
hashtrie(1000)                :      1230866.62 +/- 0.62% op/s
hamt(1000)                    :      1022396.04 +/- 0.70% op/s
persistent-hash-trie(1000)    :        47477.37 +/- 0.55% op/s
mori hash_map(1000)           :       721541.65 +/- 1.24% op/s
immutable(1000)               :       371195.99 +/- 17.21% op/s
hashtrie(10000)               :      1171517.99 +/- 0.64% op/s
hamt(10000)                   :       968174.21 +/- 0.73% op/s
persistent-hash-trie(10000)   :        44904.49 +/- 1.43% op/s
mori hash_map(10000)          :       574405.21 +/- 1.96% op/s
immutable(10000)              :       440489.22 +/- 1.69% op/s
hashtrie(100000)              :       927679.00 +/- 1.13% op/s
hamt(100000)                  :       786777.01 +/- 0.75% op/s
persistent-hash-trie(100000)  :        18629.34 +/- 0.97% op/s
mori hash_map(100000)         :       496650.93 +/- 2.68% op/s
immutable(100000)             :       248543.28 +/- 1.78% op/s


Put All
hashtrie(10)                  :       189160.66 +/- 2.85% op/s
hamt(10)                      :       198786.40 +/- 6.26% op/s
persistent-hash-trie(10)      :        39479.55 +/- 0.89% op/s
mori hash_map(10)             :        74293.29 +/- 0.20% op/s
immutable(10)                 :        62014.85 +/- 0.35% op/s
hashtrie(100)                 :        14920.49 +/- 0.47% op/s
hamt(100)                     :        17116.96 +/- 0.21% op/s
persistent-hash-trie(100)     :         1089.53 +/- 0.16% op/s
mori hash_map(100)            :         6705.38 +/- 0.20% op/s
immutable(100)                :         4402.20 +/- 0.10% op/s
hashtrie(1000)                :         1164.03 +/- 0.59% op/s
hamt(1000)                    :         1228.95 +/- 2.38% op/s
persistent-hash-trie(1000)    :           62.14 +/- 0.61% op/s
mori hash_map(1000)           :          311.84 +/- 0.38% op/s
immutable(1000)               :          253.14 +/- 0.26% op/s
hashtrie(10000)               :           84.67 +/- 5.63% op/s
hamt(10000)                   :          100.36 +/- 0.60% op/s
persistent-hash-trie(10000)   :            4.81 +/- 0.30% op/s
mori hash_map(10000)          :           34.46 +/- 1.10% op/s
immutable(10000)              :           23.19 +/- 0.90% op/s


remove nth
hashtrie(10)                  :      1787413.03 +/- 0.52% op/s
hamt(10)                      :      2316934.63 +/- 6.82% op/s
persistent-hash-trie(10)      :       137502.48 +/- 0.13% op/s
mori hash_map(10)             :       996949.50 +/- 0.13% op/s
immutable(10)                 :       520005.57 +/- 0.39% op/s
hashtrie(100)                 :      1465695.42 +/- 0.28% op/s
hamt(100)                     :      1594335.68 +/- 0.18% op/s
persistent-hash-trie(100)     :        48902.08 +/- 0.18% op/s
mori hash_map(100)            :       823931.99 +/- 1.10% op/s
immutable(100)                :       425576.96 +/- 0.30% op/s
hashtrie(1000)                :      1099042.62 +/- 0.42% op/s
hamt(1000)                    :      1080153.26 +/- 28.00% op/s
persistent-hash-trie(1000)    :        33816.95 +/- 0.90% op/s
mori hash_map(1000)           :       436831.50 +/- 0.52% op/s
immutable(1000)               :       229412.94 +/- 8.10% op/s
hashtrie(10000)               :       873379.59 +/- 0.49% op/s
hamt(10000)                   :       981949.41 +/- 0.34% op/s
persistent-hash-trie(10000)   :        27320.94 +/- 0.19% op/s
mori hash_map(10000)          :       346443.41 +/- 0.26% op/s
immutable(10000)              :       204317.22 +/- 0.30% op/s
hashtrie(100000)              :       507528.91 +/- 0.17% op/s
hamt(100000)                  :       569443.51 +/- 0.96% op/s
persistent-hash-trie(100000)  :        11435.52 +/- 8.45% op/s
mori hash_map(100000)         :       214654.95 +/- 0.67% op/s
immutable(100000)             :       128347.93 +/- 7.25% op/s


Remove All
hashtrie(10)                  :       232129.11 +/- 0.19% op/s
hamt(10)                      :       273471.52 +/- 0.15% op/s
persistent-hash-trie(10)      :        21538.27 +/- 0.70% op/s
mori hash_map(10)             :        98171.23 +/- 1.88% op/s
immutable(10)                 :        71094.45 +/- 0.27% op/s
hashtrie(100)                 :        15700.58 +/- 0.71% op/s
hamt(100)                     :        20367.75 +/- 0.16% op/s
persistent-hash-trie(100)     :         1843.25 +/- 0.21% op/s
mori hash_map(100)            :         7603.87 +/- 11.25% op/s
immutable(100)                :         4995.15 +/- 0.43% op/s
hashtrie(1000)                :         1175.80 +/- 0.15% op/s
hamt(1000)                    :         1451.93 +/- 0.17% op/s
persistent-hash-trie(1000)    :          907.75 +/- 2.89% op/s
mori hash_map(1000)           :          416.92 +/- 0.89% op/s
immutable(1000)               :          276.86 +/- 0.67% op/s
hashtrie(10000)               :           81.47 +/- 0.41% op/s
hamt(10000)                   :           99.81 +/- 0.27% op/s
persistent-hash-trie(10000)   :          247.75 +/- 0.18% op/s
mori hash_map(10000)          :           38.13 +/- 1.82% op/s
immutable(10000)              :           19.93 +/- 6.65% op/s


Count
hashtrie(10)                  :       542367.27 +/- 0.52% op/s
hamt(10)                      :      5579645.63 +/- 0.39% op/s
persistent-hash-trie(10)      :       176920.73 +/- 0.66% op/s
mori hash_map(10)             :     31147291.73 +/- 1.08% op/s
immutable(10)                 :     50845683.48 +/- 2.08% op/s
hashtrie(100)                 :        40711.83 +/- 0.10% op/s
hamt(100)                     :       390022.77 +/- 0.08% op/s
persistent-hash-trie(100)     :         6671.64 +/- 0.35% op/s
mori hash_map(100)            :     28938836.03 +/- 0.43% op/s
immutable(100)                :     52081006.39 +/- 1.84% op/s
hashtrie(1000)                :         3487.78 +/- 1.62% op/s
hamt(1000)                    :        18276.24 +/- 1.54% op/s
persistent-hash-trie(1000)    :          656.40 +/- 2.02% op/s
mori hash_map(1000)           :     31059561.12 +/- 0.18% op/s
immutable(1000)               :     50996206.28 +/- 0.19% op/s
hashtrie(10000)               :          352.05 +/- 0.03% op/s
hamt(10000)                   :         4406.05 +/- 0.17% op/s
persistent-hash-trie(10000)   :          149.28 +/- 0.46% op/s
mori hash_map(10000)          :     30281646.10 +/- 0.30% op/s
immutable(10000)              :     50678419.14 +/- 1.68% op/s


Sum
hashtrie(10)                  :       629570.73 +/- 0.71% op/s
hamt(10)                      :      3856615.89 +/- 0.10% op/s
persistent-hash-trie(10)      :        96272.11 +/- 1.88% op/s
mori hash_map(10)             :      1477283.22 +/- 0.04% op/s
immutable(10)                 :       101628.59 +/- 0.74% op/s
hashtrie(100)                 :        40887.89 +/- 0.48% op/s
hamt(100)                     :       334516.36 +/- 0.07% op/s
persistent-hash-trie(100)     :         7080.56 +/- 0.18% op/s
mori hash_map(100)            :       147678.71 +/- 0.13% op/s
immutable(100)                :         8563.35 +/- 0.15% op/s
hashtrie(1000)                :         3765.28 +/- 0.11% op/s
hamt(1000)                    :        17273.23 +/- 0.11% op/s
persistent-hash-trie(1000)    :          544.07 +/- 31.12% op/s
mori hash_map(1000)           :        10941.14 +/- 2.25% op/s
immutable(1000)               :          965.96 +/- 0.32% op/s
hashtrie(10000)               :          342.23 +/- 0.28% op/s
hamt(10000)                   :         3416.94 +/- 0.13% op/s
persistent-hash-trie(10000)   :          147.17 +/- 0.48% op/s
mori hash_map(10000)          :         1510.73 +/- 0.19% op/s
immutable(10000)              :          125.49 +/- 0.04% op/s


Keys
hashtrie(10)                  :       495884.59 +/- 1.51% op/s
hamt(10)                      :      2450253.46 +/- 0.12% op/s
persistent-hash-trie(10)      :       137743.52 +/- 0.94% op/s
mori hash_map(10)             :       351650.99 +/- 0.27% op/s
immutable(10)                 :       109650.20 +/- 4.87% op/s
hashtrie(100)                 :        33074.59 +/- 1.53% op/s
hamt(100)                     :       252790.62 +/- 0.10% op/s
persistent-hash-trie(100)     :         7192.03 +/- 0.41% op/s
mori hash_map(100)            :        27473.65 +/- 0.51% op/s
immutable(100)                :         8992.06 +/- 1.14% op/s
hashtrie(1000)                :         3447.68 +/- 0.29% op/s
hamt(1000)                    :        14500.51 +/- 0.19% op/s
persistent-hash-trie(1000)    :          670.08 +/- 0.17% op/s
mori hash_map(1000)           :         2132.59 +/- 0.31% op/s
immutable(1000)               :          932.88 +/- 0.37% op/s
hashtrie(10000)               :          307.57 +/- 2.38% op/s
hamt(10000)                   :         2652.47 +/- 0.09% op/s
persistent-hash-trie(10000)   :          151.34 +/- 0.21% op/s
mori hash_map(10000)          :          211.49 +/- 0.13% op/s
immutable(10000)              :          104.50 +/- 6.91% op/s

mattbierner - Feb 21, 2014

  • hashtrie - 0.2.1
  • hamt - 0.1.1
  • persistent-hash-trie - 0.4.2
  • mori - 0.2.5
Get nth
hashtrie(10)                  :      6656504.53 +/- 0.35% op/s
hamt(10)                      :      1916794.45 +/- 2.47% op/s
persistent-hash-trie(10)      :      3349887.43 +/- 2.29% op/s
mori hash_map(10)             :      1720997.49 +/- 0.41% op/s
hashtrie(100)                 :      5706375.45 +/- 0.28% op/s
hamt(100)                     :      1722417.47 +/- 0.74% op/s
persistent-hash-trie(100)     :      1837596.14 +/- 0.33% op/s
mori hash_map(100)            :      1667227.80 +/- 0.43% op/s
hashtrie(1000)                :      4983980.62 +/- 0.13% op/s
hamt(1000)                    :      1701599.34 +/- 0.38% op/s
persistent-hash-trie(1000)    :      1211376.53 +/- 0.41% op/s
mori hash_map(1000)           :       573989.82 +/- 3.01% op/s
hashtrie(10000)               :      3772045.35 +/- 2.02% op/s
hamt(10000)                   :      1512226.30 +/- 1.75% op/s
persistent-hash-trie(10000)   :       899809.88 +/- 2.75% op/s
mori hash_map(10000)          :       471967.00 +/- 0.85% op/s
hashtrie(100000)              :      1263399.72 +/- 2.57% op/s
hamt(100000)                  :       746667.80 +/- 2.86% op/s
persistent-hash-trie(100000)  :       702864.12 +/- 2.19% op/s
mori hash_map(100000)         :       334035.09 +/- 2.16% op/s


put nth
hashtrie(10)                  :      2498038.80 +/- 0.56% op/s
hamt(10)                      :      1054577.19 +/- 0.60% op/s
persistent-hash-trie(10)      :       287152.44 +/- 0.78% op/s
mori hash_map(10)             :      1006228.81 +/- 0.35% op/s
hashtrie(100)                 :      1521326.10 +/- 5.50% op/s
hamt(100)                     :       793141.94 +/- 0.78% op/s
persistent-hash-trie(100)     :        96927.95 +/- 0.39% op/s
mori hash_map(100)            :       908717.99 +/- 0.83% op/s
hashtrie(1000)                :      1174134.59 +/- 0.83% op/s
hamt(1000)                    :       915674.22 +/- 0.66% op/s
persistent-hash-trie(1000)    :        59675.75 +/- 0.30% op/s
mori hash_map(1000)           :       726055.12 +/- 0.88% op/s
hashtrie(10000)               :       778189.51 +/- 0.53% op/s
hamt(10000)                   :       620598.31 +/- 0.85% op/s
persistent-hash-trie(10000)   :        49643.10 +/- 1.43% op/s
mori hash_map(10000)          :       622432.63 +/- 0.80% op/s
hashtrie(100000)              :       731133.51 +/- 0.56% op/s
hamt(100000)                  :       549899.24 +/- 0.85% op/s
persistent-hash-trie(100000)  :        18836.53 +/- 0.37% op/s
mori hash_map(100000)         :       521579.56 +/- 0.63% op/s


Put All
hashtrie(10)                  :       192412.54 +/- 0.87% op/s
hamt(10)                      :       111287.47 +/- 0.75% op/s
persistent-hash-trie(10)      :        35547.46 +/- 0.33% op/s
mori hash_map(10)             :        78382.83 +/- 4.13% op/s
hashtrie(100)                 :        13578.35 +/- 1.49% op/s
hamt(100)                     :         8625.30 +/- 3.61% op/s
persistent-hash-trie(100)     :         1039.23 +/- 0.55% op/s
mori hash_map(100)            :         7371.90 +/- 0.56% op/s
hashtrie(1000)                :         1076.75 +/- 0.51% op/s
hamt(1000)                    :          687.55 +/- 2.80% op/s
persistent-hash-trie(1000)    :           60.81 +/- 1.20% op/s
mori hash_map(1000)           :          269.52 +/- 0.42% op/s
hashtrie(10000)               :           74.66 +/- 2.02% op/s
hamt(10000)                   :           43.76 +/- 13.88% op/s
persistent-hash-trie(10000)   :            4.68 +/- 1.80% op/s
mori hash_map(10000)          :           28.45 +/- 3.29% op/s


remove nth
hashtrie(10)                  :      1969302.11 +/- 0.28% op/s
hamt(10)                      :      1022247.20 +/- 0.39% op/s
persistent-hash-trie(10)      :       112421.47 +/- 0.67% op/s
mori hash_map(10)             :      1044161.33 +/- 0.63% op/s
hashtrie(100)                 :      1443240.09 +/- 0.30% op/s
hamt(100)                     :       851072.35 +/- 0.68% op/s
persistent-hash-trie(100)     :        49990.04 +/- 0.39% op/s
mori hash_map(100)            :       862510.86 +/- 1.41% op/s
hashtrie(1000)                :      1090193.29 +/- 0.82% op/s
hamt(1000)                    :       743981.12 +/- 1.20% op/s
persistent-hash-trie(1000)    :        33118.60 +/- 0.50% op/s
mori hash_map(1000)           :       348751.04 +/- 5.01% op/s
hashtrie(10000)               :       832995.92 +/- 1.40% op/s
hamt(10000)                   :       594601.72 +/- 1.63% op/s
persistent-hash-trie(10000)   :        26750.61 +/- 0.65% op/s
mori hash_map(10000)          :       293639.44 +/- 1.06% op/s
hashtrie(100000)              :       498946.42 +/- 1.17% op/s
hamt(100000)                  :       414301.53 +/- 1.13% op/s
persistent-hash-trie(100000)  :        12257.46 +/- 4.34% op/s
mori hash_map(100000)         :       199298.13 +/- 7.20% op/s


Remove All
hashtrie(10)                  :       172198.62 +/- 0.84% op/s
hamt(10)                      :       101508.40 +/- 0.52% op/s
persistent-hash-trie(10)      :        21913.30 +/- 0.46% op/s
mori hash_map(10)             :       112478.99 +/- 0.49% op/s
hashtrie(100)                 :        13000.77 +/- 6.13% op/s
hamt(100)                     :         8277.98 +/- 0.99% op/s
persistent-hash-trie(100)     :         1964.66 +/- 2.21% op/s
mori hash_map(100)            :         7978.39 +/- 3.33% op/s
hashtrie(1000)                :         1103.61 +/- 0.99% op/s
hamt(1000)                    :          675.77 +/- 2.34% op/s
persistent-hash-trie(1000)    :          847.25 +/- 0.73% op/s
mori hash_map(1000)           :          346.32 +/- 1.88% op/s
hashtrie(10000)               :           68.82 +/- 7.01% op/s
hamt(10000)                   :           54.61 +/- 2.08% op/s
persistent-hash-trie(10000)   :          224.73 +/- 1.01% op/s
mori hash_map(10000)          :           32.21 +/- 1.98% op/s


Count nth
hashtrie(10)                  :       121489.60 +/- 1.87% op/s
hamt(10)                      :       212534.56 +/- 0.36% op/s
persistent-hash-trie(10)      :        90602.71 +/- 0.51% op/s
mori hash_map(10)             :     32154895.77 +/- 2.34% op/s
hashtrie(100)                 :        15009.38 +/- 1.88% op/s
hamt(100)                     :        20481.28 +/- 6.06% op/s
persistent-hash-trie(100)     :         6379.91 +/- 0.90% op/s
mori hash_map(100)            :     30530600.29 +/- 0.87% op/s
hashtrie(1000)                :         1452.19 +/- 2.08% op/s
hamt(1000)                    :         2149.52 +/- 1.13% op/s
persistent-hash-trie(1000)    :          626.97 +/- 0.67% op/s
mori hash_map(1000)           :     31872944.19 +/- 2.19% op/s
hashtrie(10000)               :          129.26 +/- 2.10% op/s
hamt(10000)                   :          215.74 +/- 1.88% op/s
persistent-hash-trie(10000)   :          131.92 +/- 2.42% op/s
mori hash_map(10000)          :     30552224.29 +/- 1.96% op/s


Sum
hashtrie(10)                  :       386453.40 +/- 2.21% op/s
hamt(10)                      :      3268248.00 +/- 0.25% op/s
persistent-hash-trie(10)      :        93437.64 +/- 2.14% op/s
mori hash_map(10)             :      1400684.66 +/- 2.43% op/s
hashtrie(100)                 :        37985.30 +/- 0.69% op/s
hamt(100)                     :       293158.41 +/- 3.07% op/s
persistent-hash-trie(100)     :         6251.82 +/- 0.57% op/s
mori hash_map(100)            :       146274.61 +/- 0.37% op/s
hashtrie(1000)                :         3506.61 +/- 0.42% op/s
hamt(1000)                    :        16305.50 +/- 0.24% op/s
persistent-hash-trie(1000)    :          644.72 +/- 0.44% op/s
mori hash_map(1000)           :        11235.59 +/- 1.34% op/s
hashtrie(10000)               :          323.98 +/- 1.04% op/s
hamt(10000)                   :         3413.33 +/- 0.47% op/s
persistent-hash-trie(10000)   :          120.17 +/- 3.96% op/s
mori hash_map(10000)          :         1515.63 +/- 0.97% op/s


Keys
hashtrie(10)                  :       391342.94 +/- 2.27% op/s
hamt(10)                      :      2559440.35 +/- 0.39% op/s
persistent-hash-trie(10)      :       242937.21 +/- 0.38% op/s
mori hash_map(10)             :       358930.10 +/- 0.84% op/s
hashtrie(100)                 :        33161.79 +/- 0.25% op/s
hamt(100)                     :       221274.13 +/- 1.08% op/s
persistent-hash-trie(100)     :         6369.33 +/- 0.76% op/s
mori hash_map(100)            :        23328.29 +/- 5.26% op/s
hashtrie(1000)                :         3308.38 +/- 2.41% op/s
hamt(1000)                    :        13439.63 +/- 0.63% op/s
persistent-hash-trie(1000)    :          583.49 +/- 2.70% op/s
mori hash_map(1000)           :         2021.40 +/- 1.75% op/s
hashtrie(10000)               :          302.89 +/- 2.00% op/s
hamt(10000)                   :         2533.78 +/- 1.16% op/s
persistent-hash-trie(10000)   :          115.82 +/- 5.12% op/s
mori hash_map(10000)          :          175.96 +/- 5.36% op/s

mattbierner - Feb 20, 2014

  • hashtrie - 0.2.0
  • hamt - 0.0.0
  • persistent-hash-trie - 0.4.2
  • mori - 0.2.5
Get nth
hashtrie(10)                  :      7245025.47 +/- 0.23% op/s
hamt(10)                      :      7146572.05 +/- 0.20% op/s
persistent-hash-trie(10)      :      3783341.28 +/- 0.36% op/s
mori hash_map(10)             :      1688971.82 +/- 0.37% op/s
hashtrie(100)                 :      6494596.32 +/- 0.21% op/s
hamt(100)                     :      6570866.37 +/- 0.24% op/s
persistent-hash-trie(100)     :      2175430.64 +/- 1.54% op/s
mori hash_map(100)            :      1638325.36 +/- 0.30% op/s
hashtrie(1000)                :      5367591.52 +/- 0.22% op/s
hamt(1000)                    :      5475113.57 +/- 4.99% op/s
persistent-hash-trie(1000)    :      1436628.18 +/- 0.30% op/s
mori hash_map(1000)           :       651602.15 +/- 1.81% op/s
hashtrie(100000)              :      1571590.28 +/- 1.69% op/s
hamt(100000)                  :      1727849.77 +/- 1.40% op/s
persistent-hash-trie(100000)  :       823154.68 +/- 2.04% op/s
mori hash_map(100000)         :       421979.04 +/- 2.42% op/s


put nth
hashtrie(10)                  :      2372149.55 +/- 0.53% op/s
hamt(10)                      :       812155.80 +/- 0.30% op/s
persistent-hash-trie(10)      :       352361.24 +/- 0.25% op/s
mori hash_map(10)             :      1109685.71 +/- 0.60% op/s
hashtrie(100)                 :       998030.73 +/- 0.59% op/s
hamt(100)                     :       293184.03 +/- 0.46% op/s
persistent-hash-trie(100)     :        86005.45 +/- 0.24% op/s
mori hash_map(100)            :       835292.92 +/- 0.44% op/s
hashtrie(1000)                :      1270080.98 +/- 0.49% op/s
hamt(1000)                    :       198994.92 +/- 0.41% op/s
persistent-hash-trie(1000)    :        68086.63 +/- 1.85% op/s
mori hash_map(1000)           :       745013.34 +/- 4.92% op/s
hashtrie(10000)               :      1080157.80 +/- 0.53% op/s
hamt(10000)                   :       245281.73 +/- 0.90% op/s
persistent-hash-trie(10000)   :        53135.76 +/- 0.38% op/s
mori hash_map(10000)          :       698265.84 +/- 0.58% op/s
hashtrie(100000)              :      1019982.58 +/- 0.55% op/s
hamt(100000)                  :       212063.53 +/- 0.43% op/s
persistent-hash-trie(100000)  :        20018.65 +/- 0.19% op/s
mori hash_map(100000)         :       641979.12 +/- 0.58% op/s


Put All
hashtrie(10)                  :       227751.63 +/- 0.56% op/s
hamt(10)                      :        64558.61 +/- 0.38% op/s
persistent-hash-trie(10)      :        34891.13 +/- 0.37% op/s
mori hash_map(10)             :        98452.21 +/- 0.51% op/s
hashtrie(100)                 :        14547.98 +/- 3.03% op/s
hamt(100)                     :         3614.43 +/- 0.37% op/s
persistent-hash-trie(100)     :         1017.57 +/- 1.35% op/s
mori hash_map(100)            :         7955.31 +/- 0.43% op/s
hashtrie(1000)                :         1188.62 +/- 0.58% op/s
hamt(1000)                    :          278.01 +/- 0.49% op/s
persistent-hash-trie(1000)    :           63.36 +/- 0.37% op/s
mori hash_map(1000)           :          292.92 +/- 3.16% op/s
hashtrie(10000)               :           91.88 +/- 1.04% op/s
hamt(10000)                   :           21.91 +/- 0.93% op/s
persistent-hash-trie(10000)   :            4.76 +/- 2.92% op/s
mori hash_map(10000)          :           33.54 +/- 2.00% op/s


remove nth
hashtrie(10)                  :      1855032.83 +/- 0.37% op/s
hamt(10)                      :       557674.10 +/- 0.81% op/s
persistent-hash-trie(10)      :       108917.55 +/- 0.35% op/s
mori hash_map(10)             :       982896.10 +/- 0.40% op/s
hashtrie(100)                 :      1414582.14 +/- 0.86% op/s
hamt(100)                     :       335541.21 +/- 0.36% op/s
persistent-hash-trie(100)     :        47998.97 +/- 0.34% op/s
mori hash_map(100)            :       821995.47 +/- 0.32% op/s
hashtrie(1000)                :      1083275.27 +/- 0.81% op/s
hamt(1000)                    :       246516.30 +/- 0.69% op/s
persistent-hash-trie(1000)    :        32836.86 +/- 2.95% op/s
mori hash_map(1000)           :       391699.97 +/- 0.48% op/s
hashtrie(10000)               :       835379.56 +/- 1.23% op/s
hamt(10000)                   :       206837.36 +/- 0.68% op/s
persistent-hash-trie(10000)   :        27359.10 +/- 0.53% op/s
mori hash_map(10000)          :       306755.97 +/- 5.04% op/s
hashtrie(100000)              :       514552.57 +/- 1.63% op/s
hamt(100000)                  :       157321.85 +/- 0.77% op/s
persistent-hash-trie(100000)  :        15415.49 +/- 0.61% op/s
mori hash_map(100000)         :       238114.54 +/- 1.04% op/s


Remove All
hashtrie(10)                  :       248797.17 +/- 0.91% op/s
hamt(10)                      :        73600.26 +/- 0.42% op/s
persistent-hash-trie(10)      :        15483.06 +/- 0.38% op/s
mori hash_map(10)             :       122495.99 +/- 0.45% op/s
hashtrie(100)                 :        15773.39 +/- 0.24% op/s
hamt(100)                     :         3171.96 +/- 3.42% op/s
persistent-hash-trie(100)     :         1939.04 +/- 0.29% op/s
mori hash_map(100)            :         8771.80 +/- 0.40% op/s
hashtrie(1000)                :         1241.07 +/- 0.53% op/s
hamt(1000)                    :          240.57 +/- 0.53% op/s
persistent-hash-trie(1000)    :          931.13 +/- 0.48% op/s
mori hash_map(1000)           :          384.36 +/- 0.44% op/s
hashtrie(10000)               :           88.72 +/- 1.47% op/s
hamt(10000)                   :           19.56 +/- 6.69% op/s
persistent-hash-trie(10000)   :          254.50 +/- 1.54% op/s
mori hash_map(10000)          :           36.79 +/- 1.02% op/s

mattbierner - Feb 20, 2014

  • hashtrie - 0.1.2
  • hamt - 0.0.0
  • persistent-hash-trie - 0.4.2
  • mori - 0.2.5
Get nth
hashtrie(10)                  :      6439420.55 +/- 3.14% op/s
hamt(10)                      :      5588886.25 +/- 0.73% op/s
persistent-hash-trie(10)      :      3232060.25 +/- 0.57% op/s
mori hash_map(10)             :      1560029.38 +/- 1.99% op/s
hashtrie(100)                 :      6385384.22 +/- 0.48% op/s
hamt(100)                     :      6362563.19 +/- 0.49% op/s
persistent-hash-trie(100)     :      2138850.71 +/- 3.63% op/s
mori hash_map(100)            :      1361395.62 +/- 4.57% op/s
hashtrie(1000)                :      5300384.42 +/- 1.05% op/s
hamt(1000)                    :      5610255.22 +/- 1.34% op/s
persistent-hash-trie(1000)    :      1370219.95 +/- 0.61% op/s
mori hash_map(1000)           :       601029.52 +/- 2.35% op/s
hashtrie(100000)              :      1337721.58 +/- 4.08% op/s
hamt(100000)                  :      1606466.38 +/- 2.27% op/s
persistent-hash-trie(100000)  :       806638.90 +/- 2.36% op/s
mori hash_map(100000)         :       397032.80 +/- 2.68% op/s


put nth
hashtrie(10)                  :       486127.20 +/- 2.86% op/s
hamt(10)                      :       777822.40 +/- 0.39% op/s
persistent-hash-trie(10)      :       277379.36 +/- 0.24% op/s
mori hash_map(10)             :      1006305.00 +/- 2.66% op/s
hashtrie(100)                 :       368753.96 +/- 1.77% op/s
hamt(100)                     :       323291.95 +/- 1.92% op/s
persistent-hash-trie(100)     :        76687.63 +/- 0.75% op/s
mori hash_map(100)            :       762708.73 +/- 3.81% op/s
hashtrie(1000)                :       462181.94 +/- 3.38% op/s
hamt(1000)                    :       196217.06 +/- 0.93% op/s
persistent-hash-trie(1000)    :        54135.61 +/- 0.66% op/s
mori hash_map(1000)           :       330546.51 +/- 2.99% op/s
hashtrie(10000)               :       391555.05 +/- 1.46% op/s
hamt(10000)                   :       228035.12 +/- 4.65% op/s
persistent-hash-trie(10000)   :        46225.98 +/- 2.04% op/s
mori hash_map(10000)          :       682875.17 +/- 3.32% op/s
hashtrie(100000)              :       169957.77 +/- 10.73% op/s
hamt(100000)                  :       127933.42 +/- 12.58% op/s
persistent-hash-trie(100000)  :        26952.47 +/- 1.17% op/s
mori hash_map(100000)         :       519538.07 +/- 6.39% op/s


Put All
hashtrie(10)                  :        49079.53 +/- 1.34% op/s
hamt(10)                      :        73284.50 +/- 1.05% op/s
persistent-hash-trie(10)      :        37983.14 +/- 0.39% op/s
mori hash_map(10)             :       106290.89 +/- 2.87% op/s
hashtrie(100)                 :         3708.63 +/- 3.29% op/s
hamt(100)                     :         3541.61 +/- 0.51% op/s
persistent-hash-trie(100)     :         1006.16 +/- 0.77% op/s
mori hash_map(100)            :         7896.76 +/- 3.97% op/s
hashtrie(1000)                :          307.75 +/- 3.67% op/s
hamt(1000)                    :          267.34 +/- 1.45% op/s
persistent-hash-trie(1000)    :           62.00 +/- 0.61% op/s
mori hash_map(1000)           :          300.77 +/- 1.44% op/s
hashtrie(10000)               :           26.48 +/- 1.62% op/s
hamt(10000)                   :           20.74 +/- 2.10% op/s
persistent-hash-trie(10000)   :            4.70 +/- 2.46% op/s
mori hash_map(10000)          :           34.03 +/- 0.70% op/s


remove nth
hashtrie(10)                  :       454862.58 +/- 0.29% op/s
hamt(10)                      :       547889.25 +/- 3.80% op/s
persistent-hash-trie(10)      :       144491.22 +/- 0.92% op/s
mori hash_map(10)             :       995064.95 +/- 3.06% op/s
hashtrie(100)                 :       330560.87 +/- 2.68% op/s
hamt(100)                     :       323013.71 +/- 2.27% op/s
persistent-hash-trie(100)     :        44921.34 +/- 2.28% op/s
mori hash_map(100)            :       854901.38 +/- 0.95% op/s
hashtrie(1000)                :       299274.26 +/- 0.86% op/s
hamt(1000)                    :       241552.50 +/- 4.43% op/s
persistent-hash-trie(1000)    :        34023.84 +/- 1.30% op/s
mori hash_map(1000)           :       376187.74 +/- 2.22% op/s
hashtrie(10000)               :       235707.66 +/- 3.11% op/s
hamt(10000)                   :       202298.51 +/- 1.97% op/s
persistent-hash-trie(10000)   :        26385.53 +/- 1.51% op/s
mori hash_map(10000)          :       302797.07 +/- 6.55% op/s
hashtrie(100000)              :       174036.69 +/- 2.10% op/s
hamt(100000)                  :       144717.19 +/- 4.69% op/s
persistent-hash-trie(100000)  :        13804.19 +/- 4.10% op/s
mori hash_map(100000)         :       236526.09 +/- 2.49% op/s


Remove All
hashtrie(10)                  :        46646.05 +/- 3.22% op/s
hamt(10)                      :        54410.10 +/- 1.73% op/s
persistent-hash-trie(10)      :        21506.65 +/- 1.41% op/s
mori hash_map(10)             :       113523.98 +/- 0.53% op/s
hashtrie(100)                 :         3965.52 +/- 0.33% op/s
hamt(100)                     :         3075.12 +/- 2.99% op/s
persistent-hash-trie(100)     :         1902.28 +/- 3.11% op/s
mori hash_map(100)            :         7559.02 +/- 5.53% op/s
hashtrie(1000)                :          307.20 +/- 3.91% op/s
hamt(1000)                    :          222.30 +/- 4.11% op/s
persistent-hash-trie(1000)    :          856.25 +/- 3.15% op/s
mori hash_map(1000)           :          380.60 +/- 1.00% op/s
hashtrie(10000)               :           23.94 +/- 4.68% op/s
hamt(10000)                   :           19.06 +/- 1.61% op/s
persistent-hash-trie(10000)   :          231.08 +/- 1.51% op/s
mori hash_map(10000)          :           34.39 +/- 3.19% op/s

mattbierner - Feb 20, 2014

  • hashtrie - 0.1.2
  • hamt - 0.0.0
  • persistent-hash-trie - 0.4.2
Get nth
hashtrie(10)                  :     16768280.55 +/- 0.43% op/s
hamt(10)                      :     13929625.03 +/- 0.72% op/s
persistent-hash-trie(10)      :     10227646.37 +/- 0.65% op/s
hashtrie(100)                 :      8392630.95 +/- 0.22% op/s
hamt(100)                     :      8932510.34 +/- 0.48% op/s
persistent-hash-trie(100)     :      2916141.29 +/- 0.83% op/s
hashtrie(1000)                :      8137698.72 +/- 0.13% op/s
hamt(1000)                    :     15278157.60 +/- 1.32% op/s
persistent-hash-trie(1000)    :      2166851.72 +/- 3.70% op/s
hashtrie(100000)              :      3980014.12 +/- 0.12% op/s
hamt(100000)                  :      5228984.66 +/- 0.28% op/s
persistent-hash-trie(100000)  :      1364857.57 +/- 0.42% op/s


put nth
hashtrie(10)                  :       492775.98 +/- 0.57% op/s
hamt(10)                      :       763901.19 +/- 4.09% op/s
persistent-hash-trie(10)      :       173228.67 +/- 0.33% op/s
hashtrie(100)                 :       362712.74 +/- 0.48% op/s
hamt(100)                     :       358244.53 +/- 0.60% op/s
persistent-hash-trie(100)     :        49928.15 +/- 0.32% op/s
hashtrie(1000)                :       349143.48 +/- 0.37% op/s
hamt(1000)                    :       312280.64 +/- 0.47% op/s
persistent-hash-trie(1000)    :        47887.89 +/- 0.39% op/s
hashtrie(10000)               :       217770.05 +/- 0.65% op/s
hamt(10000)                   :       151731.69 +/- 0.59% op/s
persistent-hash-trie(10000)   :        47725.43 +/- 1.86% op/s
hashtrie(100000)              :       228181.54 +/- 3.97% op/s
hamt(100000)                  :       181385.32 +/- 0.85% op/s
persistent-hash-trie(100000)  :        25222.32 +/- 0.57% op/s


Put All
hashtrie(10)                  :        47364.64 +/- 0.32% op/s
hamt(10)                      :        78518.81 +/- 0.32% op/s
persistent-hash-trie(10)      :        35715.06 +/- 6.85% op/s
hashtrie(100)                 :         3746.07 +/- 0.44% op/s
hamt(100)                     :         3460.35 +/- 0.58% op/s
persistent-hash-trie(100)     :         1016.85 +/- 0.27% op/s
hashtrie(1000)                :          321.72 +/- 0.54% op/s
hamt(1000)                    :          266.04 +/- 1.02% op/s
persistent-hash-trie(1000)    :           61.40 +/- 1.10% op/s
hashtrie(10000)               :           25.61 +/- 1.27% op/s
hamt(10000)                   :           20.77 +/- 3.08% op/s
persistent-hash-trie(10000)   :            4.67 +/- 5.87% op/s


remove nth
hashtrie(10)                  :       475886.35 +/- 4.44% op/s
hamt(10)                      :       603332.64 +/- 0.58% op/s
persistent-hash-trie(10)      :        98264.75 +/- 0.30% op/s
hashtrie(100)                 :       355368.36 +/- 0.83% op/s
hamt(100)                     :       329694.04 +/- 0.48% op/s
persistent-hash-trie(100)     :        47967.96 +/- 1.40% op/s
hashtrie(1000)                :       309513.54 +/- 0.46% op/s
hamt(1000)                    :       245660.16 +/- 0.69% op/s
persistent-hash-trie(1000)    :        33674.49 +/- 0.47% op/s
hashtrie(10000)               :       245473.67 +/- 1.27% op/s
hamt(10000)                   :       198705.24 +/- 0.77% op/s
persistent-hash-trie(10000)   :        26749.86 +/- 0.80% op/s
hashtrie(100000)              :       175140.51 +/- 3.62% op/s
hamt(100000)                  :       156642.09 +/- 0.66% op/s
persistent-hash-trie(100000)  :        14658.53 +/- 1.60% op/s


Remove All
hashtrie(10)                  :        53521.56 +/- 1.07% op/s
hamt(10)                      :        55113.33 +/- 1.03% op/s
persistent-hash-trie(10)      :        21756.80 +/- 0.90% op/s
hashtrie(100)                 :         3752.61 +/- 0.53% op/s
hamt(100)                     :         3146.93 +/- 3.47% op/s
persistent-hash-trie(100)     :         2208.71 +/- 0.74% op/s
hashtrie(1000)                :          325.99 +/- 0.40% op/s
hamt(1000)                    :          244.28 +/- 0.82% op/s
persistent-hash-trie(1000)    :          911.07 +/- 0.72% op/s
hashtrie(10000)               :           25.04 +/- 1.89% op/s
hamt(10000)                   :           20.41 +/- 0.99% op/s
persistent-hash-trie(10000)   :          253.68 +/- 0.96% op/s