github.com/cockroachdb/swiss@v0.0.0-20240303172742-c161743eb608/README.md (about) 1 # Swiss Map [![Build Status](https://github.com/cockroachdb/swiss/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/cockroachdb/swiss/actions/workflows/ci.yaml) [![GoDoc](https://godoc.org/github.com/cockroachdb/swiss?status.svg)](https://godoc.org/github.com/cockroachdb/swiss) 2 3 `swiss.Map` is a Go implementation of [Google's Swiss Tables hash table 4 design](https://abseil.io/about/design/swisstables). The [Rust version of 5 Swiss Tables](https://github.com/rust-lang/hashbrown) is now the `HashMap` 6 implementation in the Rust standard library. 7 8 A `swiss.Map[K,V]` maps keys of type `K` to values of type `V`, similar to 9 Go's builtin `map[K]V` type. The primary advantage of `swiss.Map` over Go's 10 builtin map is performance. `swiss.Map` has similar or slightly better 11 performance than Go's builtin map for small map sizes, and significantly 12 better performance at large map sizes. The benchmarks where `swiss.Map` 13 performs worse are due to a fast-path optimization in Go's builtin maps for 14 tiny (6 or fewer element) maps with int32, int64, or string keys, and when 15 growing a tiny map no initial capacity specified. In the latter case, Go's 16 builtin map is sometimes able to place the map and first bucket on the stack 17 avoiding heap allocations entirely. 18 19 <details> 20 <summary>Performance: Go's builtin map (old) vs swiss.Map (new)</summary> 21 22 Tested on a GCE `n1-standard-16` instance. 23 24 ``` 25 goos: linux 26 goarch: amd64 27 pkg: github.com/cockroachdb/swiss 28 cpu: Intel(R) Xeon(R) CPU @ 2.60GHz 29 30 name old time/op new time/op delta 31 MapIter/Int/6-16 72.9ns ± 1% 38.3ns ± 1% -47.53% (p=0.000 n=10+10) 32 MapIter/Int/12-16 123ns ± 1% 56ns ± 2% -54.72% (p=0.000 n=9+10) 33 MapIter/Int/18-16 191ns ± 5% 80ns ± 1% -58.11% (p=0.000 n=10+9) 34 MapIter/Int/24-16 229ns ± 4% 89ns ± 1% -61.41% (p=0.000 n=10+10) 35 MapIter/Int/30-16 300ns ± 2% 125ns ± 2% -58.47% (p=0.000 n=9+10) 36 MapIter/Int/64-16 588ns ± 3% 233ns ± 1% -60.33% (p=0.000 n=10+10) 37 MapIter/Int/128-16 1.14µs ± 4% 0.45µs ± 1% -60.73% (p=0.000 n=10+10) 38 MapIter/Int/256-16 2.38µs ± 2% 0.86µs ± 0% -63.89% (p=0.000 n=10+10) 39 MapIter/Int/512-16 5.13µs ± 2% 1.70µs ± 0% -66.89% (p=0.000 n=10+10) 40 MapIter/Int/1024-16 11.0µs ± 2% 4.0µs ± 3% -63.31% (p=0.000 n=10+10) 41 MapIter/Int/2048-16 22.6µs ± 2% 10.7µs ± 1% -52.70% (p=0.000 n=10+9) 42 MapIter/Int/4096-16 45.8µs ± 2% 23.6µs ± 0% -48.52% (p=0.000 n=10+10) 43 MapIter/Int/8192-16 91.4µs ± 0% 48.7µs ± 0% -46.67% (p=0.000 n=8+9) 44 MapIter/Int/32768-16 367µs ± 1% 198µs ± 0% -46.03% (p=0.000 n=10+10) 45 MapIter/Int/65536-16 735µs ± 1% 397µs ± 0% -46.03% (p=0.000 n=10+10) 46 MapIter/Int/131072-16 1.47ms ± 1% 0.79ms ± 0% -46.01% (p=0.000 n=9+10) 47 MapIter/Int/262144-16 2.96ms ± 2% 1.60ms ± 0% -46.04% (p=0.000 n=10+10) 48 MapIter/Int/524288-16 6.07ms ± 2% 3.23ms ± 0% -46.82% (p=0.000 n=10+10) 49 MapIter/Int/1048576-16 12.3ms ± 2% 6.9ms ± 1% -44.18% (p=0.000 n=10+10) 50 MapIter/Int/2097152-16 24.9ms ± 1% 14.5ms ± 1% -41.78% (p=0.000 n=10+10) 51 MapIter/Int/4194304-16 50.5ms ± 1% 29.2ms ± 1% -42.14% (p=0.000 n=10+10) 52 MapGetHit/Int64/6-16 4.93ns ± 0% 6.62ns ±15% +34.14% (p=0.000 n=10+10) 53 MapGetHit/Int64/12-16 7.29ns ± 1% 6.35ns ± 0% -12.89% (p=0.000 n=8+8) 54 MapGetHit/Int64/18-16 7.57ns ±18% 6.56ns ± 9% -13.30% (p=0.001 n=10+10) 55 MapGetHit/Int64/24-16 7.54ns ± 5% 6.67ns ± 7% -11.56% (p=0.000 n=10+9) 56 MapGetHit/Int64/30-16 7.01ns ± 2% 6.35ns ± 0% -9.46% (p=0.000 n=10+8) 57 MapGetHit/Int64/64-16 7.09ns ± 1% 6.72ns ±10% -5.23% (p=0.001 n=10+10) 58 MapGetHit/Int64/128-16 7.13ns ± 2% 6.73ns ± 3% -5.62% (p=0.000 n=10+10) 59 MapGetHit/Int64/256-16 7.14ns ± 1% 6.72ns ± 3% -5.96% (p=0.000 n=10+10) 60 MapGetHit/Int64/512-16 7.20ns ± 1% 6.76ns ± 1% -6.15% (p=0.000 n=10+9) 61 MapGetHit/Int64/1024-16 7.44ns ± 1% 6.81ns ± 1% -8.41% (p=0.000 n=10+8) 62 MapGetHit/Int64/2048-16 10.2ns ± 4% 7.1ns ± 1% -29.79% (p=0.000 n=10+10) 63 MapGetHit/Int64/4096-16 16.4ns ± 2% 8.6ns ± 1% -47.76% (p=0.000 n=10+10) 64 MapGetHit/Int64/8192-16 19.6ns ± 2% 8.9ns ± 1% -54.48% (p=0.000 n=10+10) 65 MapGetHit/Int64/32768-16 23.0ns ± 1% 9.9ns ± 1% -57.18% (p=0.000 n=10+10) 66 MapGetHit/Int64/65536-16 26.0ns ± 1% 14.1ns ± 3% -45.65% (p=0.000 n=10+10) 67 MapGetHit/Int64/131072-16 27.1ns ± 1% 16.1ns ± 4% -40.67% (p=0.000 n=10+10) 68 MapGetHit/Int64/262144-16 29.9ns ± 3% 17.7ns ± 4% -40.85% (p=0.000 n=10+10) 69 MapGetHit/Int64/524288-16 33.5ns ± 5% 20.1ns ± 2% -39.88% (p=0.000 n=10+7) 70 MapGetHit/Int64/1048576-16 45.3ns ±10% 30.8ns ± 9% -32.00% (p=0.000 n=10+10) 71 MapGetHit/Int64/2097152-16 55.4ns ± 2% 47.0ns ± 3% -15.07% (p=0.000 n=10+10) 72 MapGetHit/Int64/4194304-16 58.7ns ± 2% 55.0ns ± 2% -6.34% (p=0.000 n=9+10) 73 MapGetHit/Int32/6-16 5.04ns ± 0% 6.40ns ± 0% +27.16% (p=0.000 n=10+9) 74 MapGetHit/Int32/12-16 7.71ns ±11% 6.53ns ± 3% -15.29% (p=0.000 n=10+9) 75 MapGetHit/Int32/18-16 8.04ns ± 8% 6.41ns ± 0% -20.29% (p=0.000 n=8+8) 76 MapGetHit/Int32/24-16 7.93ns ±10% 6.61ns ± 6% -16.71% (p=0.000 n=10+10) 77 MapGetHit/Int32/30-16 7.00ns ± 4% 6.74ns ±13% ~ (p=0.165 n=10+10) 78 MapGetHit/Int32/64-16 7.05ns ± 0% 6.75ns ± 2% -4.20% (p=0.000 n=8+8) 79 MapGetHit/Int32/128-16 7.08ns ± 1% 6.94ns ± 5% -2.06% (p=0.028 n=9+10) 80 MapGetHit/Int32/256-16 7.11ns ± 1% 6.76ns ± 4% -4.90% (p=0.000 n=10+10) 81 MapGetHit/Int32/512-16 7.22ns ± 1% 6.79ns ± 4% -5.99% (p=0.000 n=10+10) 82 MapGetHit/Int32/1024-16 7.31ns ± 0% 6.72ns ± 1% -8.14% (p=0.000 n=8+10) 83 MapGetHit/Int32/2048-16 8.91ns ± 6% 6.76ns ± 1% -24.15% (p=0.000 n=10+10) 84 MapGetHit/Int32/4096-16 16.3ns ± 1% 8.1ns ± 1% -50.37% (p=0.000 n=9+10) 85 MapGetHit/Int32/8192-16 19.1ns ± 1% 8.4ns ± 1% -55.92% (p=0.000 n=10+10) 86 MapGetHit/Int32/32768-16 22.0ns ± 1% 8.9ns ± 0% -59.57% (p=0.000 n=10+8) 87 MapGetHit/Int32/65536-16 24.0ns ± 0% 10.2ns ± 1% -57.39% (p=0.000 n=9+8) 88 MapGetHit/Int32/131072-16 26.2ns ± 1% 13.5ns ± 4% -48.57% (p=0.000 n=10+10) 89 MapGetHit/Int32/262144-16 27.1ns ± 1% 15.2ns ± 3% -43.76% (p=0.000 n=10+10) 90 MapGetHit/Int32/524288-16 30.2ns ± 4% 16.4ns ± 3% -45.49% (p=0.000 n=9+10) 91 MapGetHit/Int32/1048576-16 34.3ns ±10% 19.4ns ± 3% -43.58% (p=0.000 n=9+10) 92 MapGetHit/Int32/2097152-16 44.4ns ±11% 29.5ns ± 5% -33.50% (p=0.000 n=10+10) 93 MapGetHit/Int32/4194304-16 52.8ns ± 3% 42.7ns ± 2% -19.13% (p=0.000 n=9+10) 94 MapGetHit/String/6-16 12.9ns ± 1% 9.7ns ±23% -24.32% (p=0.000 n=10+10) 95 MapGetHit/String/12-16 9.52ns ± 7% 9.52ns ± 7% ~ (p=0.930 n=10+10) 96 MapGetHit/String/18-16 10.4ns ± 5% 9.5ns ± 1% -8.91% (p=0.000 n=9+9) 97 MapGetHit/String/24-16 9.67ns ± 9% 10.95ns ± 5% +13.17% (p=0.000 n=10+8) 98 MapGetHit/String/30-16 8.74ns ± 3% 9.48ns ± 1% +8.49% (p=0.000 n=10+8) 99 MapGetHit/String/64-16 8.94ns ± 2% 10.02ns ± 4% +12.02% (p=0.000 n=10+10) 100 MapGetHit/String/128-16 9.47ns ± 2% 10.02ns ± 4% +5.82% (p=0.000 n=10+10) 101 MapGetHit/String/256-16 10.3ns ± 2% 10.0ns ± 4% -3.33% (p=0.000 n=10+10) 102 MapGetHit/String/512-16 10.9ns ± 2% 10.0ns ± 4% -7.78% (p=0.000 n=10+10) 103 MapGetHit/String/1024-16 11.3ns ± 2% 10.5ns ± 5% -7.45% (p=0.000 n=9+10) 104 MapGetHit/String/2048-16 15.7ns ± 6% 10.8ns ± 1% -31.48% (p=0.000 n=10+10) 105 MapGetHit/String/4096-16 27.2ns ± 2% 12.6ns ± 1% -53.77% (p=0.000 n=10+10) 106 MapGetHit/String/8192-16 30.1ns ± 1% 13.1ns ± 1% -56.64% (p=0.000 n=10+10) 107 MapGetHit/String/32768-16 37.3ns ± 1% 19.3ns ± 2% -48.32% (p=0.000 n=10+9) 108 MapGetHit/String/65536-16 39.0ns ± 1% 22.1ns ± 4% -43.25% (p=0.000 n=9+10) 109 MapGetHit/String/131072-16 40.7ns ± 4% 25.0ns ± 3% -38.72% (p=0.000 n=10+10) 110 MapGetHit/String/262144-16 52.7ns ± 7% 28.5ns ± 4% -45.97% (p=0.000 n=10+10) 111 MapGetHit/String/524288-16 68.5ns ±10% 40.4ns ± 3% -41.06% (p=0.000 n=10+8) 112 MapGetHit/String/1048576-16 76.8ns ± 4% 64.1ns ± 7% -16.46% (p=0.000 n=10+10) 113 MapGetHit/String/2097152-16 86.5ns ± 2% 78.7ns ± 1% -9.00% (p=0.000 n=10+9) 114 MapGetHit/String/4194304-16 94.4ns ± 5% 86.7ns ± 1% -8.23% (p=0.000 n=10+10) 115 MapGetMiss/Int64/6-16 7.16ns ± 0% 7.49ns ± 0% +4.62% (p=0.000 n=10+8) 116 MapGetMiss/Int64/12-16 11.1ns ±37% 8.9ns ±17% -19.60% (p=0.000 n=10+10) 117 MapGetMiss/Int64/18-16 10.0ns ± 0% 8.2ns ±18% -17.55% (p=0.000 n=8+10) 118 MapGetMiss/Int64/24-16 11.5ns ±14% 9.7ns ±16% -15.75% (p=0.002 n=10+10) 119 MapGetMiss/Int64/30-16 9.94ns ± 0% 7.88ns ± 5% -20.79% (p=0.000 n=9+10) 120 MapGetMiss/Int64/64-16 11.4ns ±16% 8.2ns ± 4% -28.39% (p=0.000 n=10+10) 121 MapGetMiss/Int64/128-16 10.5ns ± 8% 8.4ns ± 4% -19.95% (p=0.000 n=10+10) 122 MapGetMiss/Int64/256-16 10.5ns ± 5% 8.5ns ± 6% -18.62% (p=0.000 n=10+10) 123 MapGetMiss/Int64/512-16 10.3ns ± 2% 8.6ns ± 5% -16.34% (p=0.000 n=8+10) 124 MapGetMiss/Int64/1024-16 10.5ns ± 3% 8.7ns ± 2% -17.18% (p=0.000 n=10+10) 125 MapGetMiss/Int64/2048-16 10.9ns ± 2% 8.9ns ± 2% -17.72% (p=0.000 n=10+10) 126 MapGetMiss/Int64/4096-16 11.1ns ± 1% 10.5ns ± 2% -5.45% (p=0.000 n=8+10) 127 MapGetMiss/Int64/8192-16 11.7ns ± 2% 10.9ns ± 1% -6.53% (p=0.000 n=10+10) 128 MapGetMiss/Int64/32768-16 14.0ns ± 1% 11.6ns ± 1% -17.32% (p=0.000 n=10+10) 129 MapGetMiss/Int64/65536-16 17.2ns ± 1% 12.6ns ± 1% -26.46% (p=0.000 n=9+10) 130 MapGetMiss/Int64/131072-16 18.4ns ± 3% 14.5ns ± 2% -21.17% (p=0.000 n=10+10) 131 MapGetMiss/Int64/262144-16 20.1ns ± 2% 16.1ns ± 3% -19.93% (p=0.000 n=8+10) 132 MapGetMiss/Int64/524288-16 42.3ns ±28% 18.0ns ± 3% -57.35% (p=0.000 n=10+10) 133 MapGetMiss/Int64/1048576-16 53.3ns ± 7% 21.7ns ± 5% -59.34% (p=0.000 n=8+10) 134 MapGetMiss/Int64/2097152-16 58.5ns ± 4% 32.9ns ± 5% -43.80% (p=0.000 n=10+10) 135 MapGetMiss/Int64/4194304-16 63.2ns ± 7% 43.5ns ± 3% -31.16% (p=0.000 n=9+10) 136 MapGetMiss/Int32/6-16 8.92ns ± 0% 7.19ns ± 0% -19.45% (p=0.000 n=10+8) 137 MapGetMiss/Int32/12-16 11.0ns ± 0% 8.7ns ±18% -20.45% (p=0.000 n=9+10) 138 MapGetMiss/Int32/18-16 11.0ns ± 0% 7.6ns ±10% -31.26% (p=0.000 n=9+10) 139 MapGetMiss/Int32/24-16 12.5ns ±15% 9.1ns ±22% -27.69% (p=0.000 n=10+10) 140 MapGetMiss/Int32/30-16 11.0ns ± 0% 7.7ns ± 6% -30.29% (p=0.000 n=8+10) 141 MapGetMiss/Int32/64-16 11.0ns ± 0% 7.8ns ± 7% -28.75% (p=0.000 n=9+9) 142 MapGetMiss/Int32/128-16 11.7ns ±13% 8.0ns ± 6% -31.76% (p=0.000 n=10+10) 143 MapGetMiss/Int32/256-16 11.5ns ± 4% 8.2ns ± 6% -28.83% (p=0.000 n=10+10) 144 MapGetMiss/Int32/512-16 11.4ns ± 6% 8.3ns ± 1% -26.91% (p=0.000 n=10+8) 145 MapGetMiss/Int32/1024-16 11.5ns ± 3% 8.4ns ± 3% -26.83% (p=0.000 n=10+10) 146 MapGetMiss/Int32/2048-16 11.5ns ± 2% 8.5ns ± 3% -25.93% (p=0.000 n=9+10) 147 MapGetMiss/Int32/4096-16 11.5ns ± 1% 10.1ns ± 2% -12.27% (p=0.000 n=10+10) 148 MapGetMiss/Int32/8192-16 11.6ns ± 2% 10.3ns ± 0% -11.61% (p=0.000 n=10+8) 149 MapGetMiss/Int32/32768-16 12.5ns ± 1% 11.0ns ± 1% -11.58% (p=0.000 n=10+10) 150 MapGetMiss/Int32/65536-16 14.2ns ± 2% 11.8ns ± 1% -16.82% (p=0.000 n=9+10) 151 MapGetMiss/Int32/131072-16 17.1ns ± 2% 14.3ns ± 2% -16.72% (p=0.000 n=10+10) 152 MapGetMiss/Int32/262144-16 18.1ns ± 3% 15.3ns ± 3% -15.47% (p=0.000 n=9+10) 153 MapGetMiss/Int32/524288-16 20.9ns ± 7% 16.8ns ± 2% -19.84% (p=0.000 n=10+10) 154 MapGetMiss/Int32/1048576-16 24.9ns ±16% 20.1ns ± 3% -19.08% (p=0.000 n=9+9) 155 MapGetMiss/Int32/2097152-16 38.6ns ±20% 32.3ns ± 9% -16.22% (p=0.003 n=10+10) 156 MapGetMiss/Int32/4194304-16 51.6ns ± 6% 42.9ns ± 3% -16.85% (p=0.000 n=10+10) 157 MapGetMiss/String/6-16 7.79ns ± 0% 9.77ns ± 9% +25.41% (p=0.000 n=10+10) 158 MapGetMiss/String/12-16 13.5ns ±16% 11.1ns ±15% -18.26% (p=0.000 n=10+10) 159 MapGetMiss/String/18-16 13.6ns ± 9% 10.4ns ±10% -23.75% (p=0.000 n=10+10) 160 MapGetMiss/String/24-16 13.6ns ± 3% 11.7ns ±15% -13.89% (p=0.000 n=9+10) 161 MapGetMiss/String/30-16 13.3ns ± 6% 10.0ns ± 7% -24.85% (p=0.000 n=9+10) 162 MapGetMiss/String/64-16 13.1ns ± 4% 10.5ns ± 7% -19.53% (p=0.000 n=9+10) 163 MapGetMiss/String/128-16 12.7ns ± 1% 10.6ns ± 2% -16.28% (p=0.000 n=10+8) 164 MapGetMiss/String/256-16 13.1ns ± 4% 10.8ns ± 6% -17.39% (p=0.000 n=10+10) 165 MapGetMiss/String/512-16 13.3ns ± 4% 11.0ns ± 5% -17.68% (p=0.000 n=10+10) 166 MapGetMiss/String/1024-16 15.0ns ± 3% 11.0ns ± 3% -26.65% (p=0.000 n=10+9) 167 MapGetMiss/String/2048-16 18.2ns ± 4% 11.4ns ± 2% -37.39% (p=0.000 n=10+9) 168 MapGetMiss/String/4096-16 17.1ns ± 3% 13.1ns ± 3% -23.30% (p=0.000 n=10+10) 169 MapGetMiss/String/8192-16 17.1ns ± 1% 13.7ns ± 1% -20.13% (p=0.000 n=9+9) 170 MapGetMiss/String/32768-16 28.6ns ± 2% 14.9ns ± 3% -47.98% (p=0.000 n=10+10) 171 MapGetMiss/String/65536-16 25.4ns ± 2% 16.9ns ± 3% -33.45% (p=0.000 n=9+10) 172 MapGetMiss/String/131072-16 38.3ns ± 2% 19.6ns ± 2% -48.72% (p=0.000 n=9+10) 173 MapGetMiss/String/262144-16 40.7ns ± 8% 22.3ns ± 3% -45.20% (p=0.000 n=8+10) 174 MapGetMiss/String/524288-16 52.4ns ±20% 27.8ns ± 3% -47.02% (p=0.000 n=10+10) 175 MapGetMiss/String/1048576-16 65.7ns ± 7% 40.9ns ± 7% -37.70% (p=0.000 n=10+10) 176 MapGetMiss/String/2097152-16 80.8ns ± 3% 52.5ns ± 1% -35.08% (p=0.000 n=10+7) 177 MapGetMiss/String/4194304-16 78.9ns ± 2% 58.4ns ± 2% -26.05% (p=0.000 n=10+10) 178 MapPutGrow/Int64/6-16 83.2ns ± 0% 154.0ns ± 0% +85.04% (p=0.000 n=9+9) 179 MapPutGrow/Int64/12-16 408ns ± 0% 392ns ± 0% -3.76% (p=0.000 n=9+9) 180 MapPutGrow/Int64/18-16 876ns ± 0% 749ns ± 0% -14.49% (p=0.000 n=10+9) 181 MapPutGrow/Int64/24-16 1.10µs ± 0% 0.84µs ± 1% -23.60% (p=0.000 n=9+10) 182 MapPutGrow/Int64/30-16 1.93µs ± 0% 1.47µs ± 0% -24.04% (p=0.000 n=10+10) 183 MapPutGrow/Int64/64-16 4.37µs ± 0% 2.93µs ± 0% -32.84% (p=0.000 n=10+8) 184 MapPutGrow/Int64/128-16 8.82µs ± 0% 5.73µs ± 1% -35.08% (p=0.000 n=10+10) 185 MapPutGrow/Int64/256-16 17.3µs ± 0% 11.1µs ± 0% -35.76% (p=0.000 n=10+9) 186 MapPutGrow/Int64/512-16 34.1µs ± 0% 21.8µs ± 1% -36.09% (p=0.000 n=10+10) 187 MapPutGrow/Int64/1024-16 67.3µs ± 0% 44.0µs ± 1% -34.71% (p=0.000 n=10+10) 188 MapPutGrow/Int64/2048-16 134µs ± 0% 86µs ± 1% -35.52% (p=0.000 n=9+9) 189 MapPutGrow/Int64/4096-16 268µs ± 0% 210µs ± 0% -21.76% (p=0.000 n=10+10) 190 MapPutGrow/Int64/8192-16 540µs ± 0% 470µs ± 0% -12.95% (p=0.000 n=10+10) 191 MapPutGrow/Int64/32768-16 2.36ms ± 0% 2.09ms ± 0% -11.33% (p=0.000 n=10+10) 192 MapPutGrow/Int64/65536-16 4.87ms ± 1% 4.38ms ± 0% -10.07% (p=0.000 n=10+9) 193 MapPutGrow/Int64/131072-16 11.3ms ± 3% 9.4ms ± 1% -16.77% (p=0.000 n=10+10) 194 MapPutGrow/Int64/262144-16 26.4ms ± 2% 19.7ms ± 0% -25.54% (p=0.000 n=10+6) 195 MapPutGrow/Int64/524288-16 62.2ms ± 2% 42.8ms ± 1% -31.10% (p=0.000 n=10+10) 196 MapPutGrow/Int64/1048576-16 147ms ± 3% 92ms ± 1% -37.53% (p=0.000 n=9+10) 197 MapPutGrow/Int64/2097152-16 347ms ± 1% 208ms ± 1% -40.02% (p=0.000 n=10+8) 198 MapPutGrow/Int64/4194304-16 774ms ± 1% 474ms ± 1% -38.79% (p=0.000 n=9+10) 199 MapPutGrow/Int32/6-16 85.4ns ± 0% 159.5ns ± 1% +86.80% (p=0.000 n=10+10) 200 MapPutGrow/Int32/12-16 385ns ± 0% 363ns ± 0% -5.81% (p=0.000 n=10+10) 201 MapPutGrow/Int32/18-16 822ns ± 0% 648ns ± 0% -21.10% (p=0.000 n=10+10) 202 MapPutGrow/Int32/24-16 1.04µs ± 0% 0.73µs ± 1% -29.67% (p=0.000 n=10+10) 203 MapPutGrow/Int32/30-16 1.80µs ± 0% 1.22µs ± 0% -32.15% (p=0.000 n=10+9) 204 MapPutGrow/Int32/64-16 4.00µs ± 0% 2.49µs ± 0% -37.86% (p=0.000 n=10+9) 205 MapPutGrow/Int32/128-16 8.14µs ± 0% 4.88µs ± 1% -40.00% (p=0.000 n=10+10) 206 MapPutGrow/Int32/256-16 16.1µs ± 0% 9.6µs ± 1% -40.63% (p=0.000 n=9+10) 207 MapPutGrow/Int32/512-16 31.6µs ± 0% 18.8µs ± 0% -40.57% (p=0.000 n=10+10) 208 MapPutGrow/Int32/1024-16 62.3µs ± 0% 37.0µs ± 1% -40.61% (p=0.000 n=10+10) 209 MapPutGrow/Int32/2048-16 124µs ± 0% 74µs ± 0% -40.63% (p=0.000 n=10+9) 210 MapPutGrow/Int32/4096-16 245µs ± 0% 190µs ± 0% -22.31% (p=0.000 n=10+10) 211 MapPutGrow/Int32/8192-16 495µs ± 0% 435µs ± 0% -12.10% (p=0.000 n=10+10) 212 MapPutGrow/Int32/32768-16 2.08ms ± 0% 1.93ms ± 0% -7.08% (p=0.000 n=10+10) 213 MapPutGrow/Int32/65536-16 4.37ms ± 1% 4.00ms ± 0% -8.34% (p=0.000 n=8+8) 214 MapPutGrow/Int32/131072-16 10.0ms ± 3% 8.2ms ± 0% -18.19% (p=0.000 n=10+10) 215 MapPutGrow/Int32/262144-16 22.3ms ± 1% 17.5ms ± 1% -21.44% (p=0.000 n=10+10) 216 MapPutGrow/Int32/524288-16 50.5ms ± 1% 37.1ms ± 2% -26.56% (p=0.000 n=10+10) 217 MapPutGrow/Int32/1048576-16 119ms ± 2% 79ms ± 1% -33.30% (p=0.000 n=10+10) 218 MapPutGrow/Int32/2097152-16 285ms ± 1% 174ms ± 1% -39.14% (p=0.000 n=10+10) 219 MapPutGrow/Int32/4194304-16 654ms ± 1% 390ms ± 1% -40.40% (p=0.000 n=10+10) 220 MapPutGrow/String/6-16 88.6ns ± 0% 209.8ns ± 0% +136.77% (p=0.000 n=10+9) 221 MapPutGrow/String/12-16 490ns ± 1% 539ns ± 0% +9.98% (p=0.000 n=10+10) 222 MapPutGrow/String/18-16 1.14µs ± 1% 1.10µs ± 0% -3.14% (p=0.000 n=10+9) 223 MapPutGrow/String/24-16 1.36µs ± 1% 1.21µs ± 1% -11.09% (p=0.000 n=10+10) 224 MapPutGrow/String/30-16 2.47µs ± 2% 2.19µs ± 1% -11.41% (p=0.000 n=10+10) 225 MapPutGrow/String/64-16 5.46µs ± 0% 4.41µs ± 1% -19.23% (p=0.000 n=9+10) 226 MapPutGrow/String/128-16 11.1µs ± 1% 8.6µs ± 0% -22.92% (p=0.000 n=10+10) 227 MapPutGrow/String/256-16 22.1µs ± 1% 16.4µs ± 1% -25.99% (p=0.000 n=10+10) 228 MapPutGrow/String/512-16 44.8µs ± 0% 32.7µs ± 1% -27.06% (p=0.000 n=9+10) 229 MapPutGrow/String/1024-16 89.5µs ± 1% 63.9µs ± 1% -28.60% (p=0.000 n=10+10) 230 MapPutGrow/String/2048-16 182µs ± 1% 128µs ± 1% -29.66% (p=0.000 n=10+10) 231 MapPutGrow/String/4096-16 386µs ± 1% 290µs ± 0% -24.91% (p=0.000 n=9+8) 232 MapPutGrow/String/8192-16 853µs ± 1% 663µs ± 1% -22.23% (p=0.000 n=10+9) 233 MapPutGrow/String/32768-16 4.04ms ± 3% 3.18ms ± 1% -21.36% (p=0.000 n=10+10) 234 MapPutGrow/String/65536-16 8.75ms ± 3% 7.13ms ± 3% -18.57% (p=0.000 n=10+10) 235 MapPutGrow/String/131072-16 20.1ms ± 3% 14.8ms ± 2% -26.71% (p=0.000 n=10+10) 236 MapPutGrow/String/262144-16 46.0ms ± 0% 32.4ms ± 3% -29.53% (p=0.000 n=8+10) 237 MapPutGrow/String/524288-16 112ms ± 1% 72ms ± 3% -35.11% (p=0.000 n=7+10) 238 MapPutGrow/String/1048576-16 268ms ± 2% 169ms ± 2% -36.92% (p=0.000 n=10+10) 239 MapPutGrow/String/2097152-16 660ms ± 2% 395ms ± 1% -40.18% (p=0.000 n=9+8) 240 MapPutGrow/String/4194304-16 1.43s ± 1% 0.91s ± 1% -36.55% (p=0.000 n=9+10) 241 MapPutPreAllocate/Int64/6-16 83.7ns ± 0% 142.5ns ± 1% +70.38% (p=0.000 n=10+10) 242 MapPutPreAllocate/Int64/12-16 330ns ± 0% 227ns ± 1% -31.29% (p=0.000 n=10+10) 243 MapPutPreAllocate/Int64/18-16 534ns ± 1% 329ns ± 1% -38.34% (p=0.000 n=10+10) 244 MapPutPreAllocate/Int64/24-16 759ns ± 0% 409ns ± 1% -46.16% (p=0.000 n=10+10) 245 MapPutPreAllocate/Int64/30-16 918ns ± 1% 549ns ± 1% -40.19% (p=0.000 n=10+9) 246 MapPutPreAllocate/Int64/64-16 2.11µs ± 1% 1.06µs ± 0% -49.94% (p=0.000 n=10+10) 247 MapPutPreAllocate/Int64/128-16 4.11µs ± 0% 2.07µs ± 1% -49.74% (p=0.000 n=10+10) 248 MapPutPreAllocate/Int64/256-16 7.89µs ± 0% 3.97µs ± 1% -49.76% (p=0.000 n=9+10) 249 MapPutPreAllocate/Int64/512-16 15.7µs ± 1% 7.8µs ± 1% -50.22% (p=0.000 n=10+9) 250 MapPutPreAllocate/Int64/1024-16 31.3µs ± 0% 16.3µs ± 1% -47.79% (p=0.000 n=9+9) 251 MapPutPreAllocate/Int64/2048-16 64.8µs ± 1% 31.3µs ± 1% -51.69% (p=0.000 n=10+10) 252 MapPutPreAllocate/Int64/4096-16 132µs ± 1% 73µs ± 1% -45.02% (p=0.000 n=10+10) 253 MapPutPreAllocate/Int64/8192-16 272µs ± 1% 154µs ± 1% -43.55% (p=0.000 n=10+10) 254 MapPutPreAllocate/Int64/32768-16 1.24ms ± 1% 0.79ms ± 1% -36.04% (p=0.000 n=10+10) 255 MapPutPreAllocate/Int64/65536-16 2.52ms ± 0% 1.77ms ± 2% -29.86% (p=0.000 n=10+10) 256 MapPutPreAllocate/Int64/131072-16 5.75ms ± 1% 3.45ms ± 1% -39.97% (p=0.000 n=10+9) 257 MapPutPreAllocate/Int64/262144-16 12.6ms ± 1% 8.0ms ± 3% -36.98% (p=0.000 n=10+10) 258 MapPutPreAllocate/Int64/524288-16 30.1ms ± 1% 20.1ms ± 3% -33.43% (p=0.000 n=10+9) 259 MapPutPreAllocate/Int64/1048576-16 72.2ms ± 1% 52.5ms ± 4% -27.26% (p=0.000 n=10+10) 260 MapPutPreAllocate/Int64/2097152-16 164ms ± 1% 132ms ± 5% -19.77% (p=0.000 n=8+10) 261 MapPutPreAllocate/Int64/4194304-16 363ms ± 1% 300ms ± 1% -17.39% (p=0.000 n=10+10) 262 MapPutPreAllocate/Int32/6-16 84.9ns ± 0% 131.4ns ± 1% +54.89% (p=0.000 n=10+8) 263 MapPutPreAllocate/Int32/12-16 298ns ± 0% 220ns ± 0% -26.06% (p=0.000 n=10+8) 264 MapPutPreAllocate/Int32/18-16 479ns ± 0% 309ns ± 1% -35.42% (p=0.000 n=10+10) 265 MapPutPreAllocate/Int32/24-16 692ns ± 0% 399ns ± 1% -42.29% (p=0.000 n=10+9) 266 MapPutPreAllocate/Int32/30-16 820ns ± 0% 478ns ± 1% -41.71% (p=0.000 n=10+9) 267 MapPutPreAllocate/Int32/64-16 1.82µs ± 0% 0.88µs ± 1% -51.68% (p=0.000 n=10+9) 268 MapPutPreAllocate/Int32/128-16 3.62µs ± 0% 1.64µs ± 1% -54.61% (p=0.000 n=10+10) 269 MapPutPreAllocate/Int32/256-16 7.21µs ± 0% 3.21µs ± 0% -55.51% (p=0.000 n=10+8) 270 MapPutPreAllocate/Int32/512-16 14.0µs ± 0% 6.3µs ± 1% -55.40% (p=0.000 n=10+10) 271 MapPutPreAllocate/Int32/1024-16 27.7µs ± 0% 12.4µs ± 1% -55.10% (p=0.000 n=10+9) 272 MapPutPreAllocate/Int32/2048-16 56.0µs ± 0% 25.1µs ± 1% -55.19% (p=0.000 n=8+8) 273 MapPutPreAllocate/Int32/4096-16 114µs ± 0% 59µs ± 1% -47.86% (p=0.000 n=9+9) 274 MapPutPreAllocate/Int32/8192-16 233µs ± 0% 124µs ± 1% -46.80% (p=0.000 n=8+10) 275 MapPutPreAllocate/Int32/32768-16 1.01ms ± 0% 0.57ms ± 2% -43.78% (p=0.000 n=10+10) 276 MapPutPreAllocate/Int32/65536-16 2.25ms ± 0% 1.36ms ±10% -39.79% (p=0.000 n=7+10) 277 MapPutPreAllocate/Int32/131072-16 5.07ms ± 1% 3.24ms ±11% -35.97% (p=0.000 n=10+10) 278 MapPutPreAllocate/Int32/262144-16 10.9ms ± 1% 6.1ms ± 1% -44.05% (p=0.000 n=10+8) 279 MapPutPreAllocate/Int32/524288-16 24.2ms ± 1% 14.4ms ± 5% -40.49% (p=0.000 n=10+10) 280 MapPutPreAllocate/Int32/1048576-16 59.5ms ± 2% 38.3ms ± 8% -35.55% (p=0.000 n=10+10) 281 MapPutPreAllocate/Int32/2097152-16 145ms ± 1% 103ms ± 3% -29.32% (p=0.000 n=10+10) 282 MapPutPreAllocate/Int32/4194304-16 319ms ± 1% 251ms ± 3% -21.13% (p=0.000 n=10+10) 283 MapPutPreAllocate/String/6-16 92.1ns ± 0% 225.2ns ± 1% +144.64% (p=0.000 n=9+10) 284 MapPutPreAllocate/String/12-16 395ns ± 1% 401ns ± 1% +1.57% (p=0.000 n=10+10) 285 MapPutPreAllocate/String/18-16 661ns ± 0% 616ns ± 1% -6.87% (p=0.000 n=9+10) 286 MapPutPreAllocate/String/24-16 885ns ± 0% 778ns ± 1% -12.01% (p=0.000 n=8+10) 287 MapPutPreAllocate/String/30-16 1.13µs ± 0% 1.03µs ± 1% -8.95% (p=0.000 n=9+9) 288 MapPutPreAllocate/String/64-16 2.41µs ± 0% 2.09µs ± 1% -13.16% (p=0.000 n=10+10) 289 MapPutPreAllocate/String/128-16 4.67µs ± 0% 4.06µs ± 1% -13.21% (p=0.000 n=10+10) 290 MapPutPreAllocate/String/256-16 9.29µs ± 0% 7.98µs ± 1% -14.04% (p=0.000 n=8+10) 291 MapPutPreAllocate/String/512-16 19.0µs ± 0% 16.4µs ± 1% -13.60% (p=0.000 n=10+10) 292 MapPutPreAllocate/String/1024-16 38.0µs ± 1% 31.4µs ± 1% -17.41% (p=0.000 n=10+10) 293 MapPutPreAllocate/String/2048-16 76.3µs ± 0% 63.8µs ± 1% -16.33% (p=0.000 n=10+10) 294 MapPutPreAllocate/String/4096-16 160µs ± 1% 150µs ± 1% -6.23% (p=0.000 n=10+10) 295 MapPutPreAllocate/String/8192-16 345µs ± 1% 323µs ± 4% -6.41% (p=0.000 n=10+9) 296 MapPutPreAllocate/String/32768-16 1.61ms ± 3% 1.86ms ± 2% +15.65% (p=0.000 n=10+10) 297 MapPutPreAllocate/String/65536-16 3.40ms ± 1% 3.89ms ± 3% +14.42% (p=0.000 n=9+10) 298 MapPutPreAllocate/String/131072-16 7.78ms ± 1% 7.53ms ± 2% -3.22% (p=0.000 n=10+10) 299 MapPutPreAllocate/String/262144-16 19.3ms ± 1% 18.6ms ± 2% -3.31% (p=0.000 n=9+10) 300 MapPutPreAllocate/String/524288-16 45.8ms ± 2% 44.1ms ± 3% -3.59% (p=0.000 n=10+10) 301 MapPutPreAllocate/String/1048576-16 105ms ± 1% 108ms ± 1% +2.09% (p=0.000 n=8+9) 302 MapPutPreAllocate/String/2097152-16 257ms ± 1% 253ms ± 2% -1.51% (p=0.010 n=9+10) 303 MapPutPreAllocate/String/4194304-16 562ms ± 1% 565ms ± 2% ~ (p=0.436 n=10+10) 304 MapPutReuse/Int64/6-16 92.3ns ± 0% 75.5ns ± 0% -18.25% (p=0.000 n=10+10) 305 MapPutReuse/Int64/12-16 272ns ± 0% 131ns ± 0% -51.86% (p=0.000 n=8+9) 306 MapPutReuse/Int64/18-16 435ns ± 0% 184ns ± 0% -57.64% (p=0.000 n=10+9) 307 MapPutReuse/Int64/24-16 653ns ± 0% 263ns ± 0% -59.77% (p=0.000 n=10+8) 308 MapPutReuse/Int64/30-16 754ns ± 0% 310ns ± 0% -58.92% (p=0.000 n=10+8) 309 MapPutReuse/Int64/64-16 1.66µs ± 0% 0.64µs ± 0% -61.35% (p=0.000 n=10+8) 310 MapPutReuse/Int64/128-16 3.35µs ± 0% 1.27µs ± 1% -61.95% (p=0.000 n=10+10) 311 MapPutReuse/Int64/256-16 6.70µs ± 0% 2.52µs ± 1% -62.35% (p=0.000 n=10+9) 312 MapPutReuse/Int64/512-16 13.3µs ± 0% 5.2µs ± 4% -61.40% (p=0.000 n=10+10) 313 MapPutReuse/Int64/1024-16 26.6µs ± 0% 10.4µs ± 4% -60.83% (p=0.000 n=10+10) 314 MapPutReuse/Int64/2048-16 55.2µs ± 0% 22.3µs ± 1% -59.54% (p=0.000 n=10+9) 315 MapPutReuse/Int64/4096-16 114µs ± 0% 55µs ± 3% -51.35% (p=0.000 n=10+10) 316 MapPutReuse/Int64/8192-16 234µs ± 0% 113µs ± 2% -51.45% (p=0.000 n=9+10) 317 MapPutReuse/Int64/32768-16 1.00ms ± 1% 0.51ms ± 2% -48.75% (p=0.000 n=10+10) 318 MapPutReuse/Int64/65536-16 2.26ms ± 1% 1.22ms ± 2% -45.91% (p=0.000 n=9+9) 319 MapPutReuse/Int64/131072-16 4.75ms ± 2% 2.65ms ± 2% -44.27% (p=0.000 n=10+10) 320 MapPutReuse/Int64/262144-16 10.2ms ± 1% 5.9ms ± 4% -42.46% (p=0.000 n=10+10) 321 MapPutReuse/Int64/524288-16 22.0ms ± 1% 15.3ms ± 7% -30.66% (p=0.000 n=9+9) 322 MapPutReuse/Int64/1048576-16 57.2ms ± 2% 55.5ms ± 6% -3.09% (p=0.019 n=10+10) 323 MapPutReuse/Int64/2097152-16 133ms ± 2% 137ms ± 5% +3.07% (p=0.004 n=10+10) 324 MapPutReuse/Int64/4194304-16 319ms ± 1% 290ms ± 1% -8.86% (p=0.000 n=9+10) 325 MapPutReuse/Int32/6-16 93.9ns ± 0% 73.6ns ± 2% -21.59% (p=0.000 n=10+10) 326 MapPutReuse/Int32/12-16 271ns ± 0% 127ns ± 2% -53.15% (p=0.000 n=9+10) 327 MapPutReuse/Int32/18-16 440ns ± 0% 176ns ± 0% -59.94% (p=0.000 n=10+10) 328 MapPutReuse/Int32/24-16 655ns ± 0% 252ns ± 0% -61.56% (p=0.000 n=8+9) 329 MapPutReuse/Int32/30-16 764ns ± 0% 292ns ± 0% -61.83% (p=0.000 n=10+9) 330 MapPutReuse/Int32/64-16 1.67µs ± 0% 0.60µs ± 0% -64.35% (p=0.000 n=10+9) 331 MapPutReuse/Int32/128-16 3.42µs ± 0% 1.20µs ± 0% -64.79% (p=0.000 n=10+9) 332 MapPutReuse/Int32/256-16 6.83µs ± 0% 2.59µs ± 0% -62.04% (p=0.000 n=9+9) 333 MapPutReuse/Int32/512-16 13.6µs ± 0% 5.0µs ± 2% -63.40% (p=0.000 n=9+9) 334 MapPutReuse/Int32/1024-16 27.1µs ± 0% 10.1µs ± 5% -62.63% (p=0.000 n=8+10) 335 MapPutReuse/Int32/2048-16 53.5µs ± 0% 19.4µs ± 2% -63.71% (p=0.000 n=10+10) 336 MapPutReuse/Int32/4096-16 111µs ± 0% 50µs ± 3% -55.16% (p=0.000 n=10+10) 337 MapPutReuse/Int32/8192-16 228µs ± 0% 103µs ± 2% -54.72% (p=0.000 n=10+10) 338 MapPutReuse/Int32/32768-16 955µs ± 0% 443µs ± 3% -53.64% (p=0.000 n=9+10) 339 MapPutReuse/Int32/65536-16 2.03ms ± 1% 0.95ms ± 1% -53.22% (p=0.000 n=10+10) 340 MapPutReuse/Int32/131072-16 4.50ms ± 1% 2.71ms ± 2% -39.79% (p=0.000 n=10+8) 341 MapPutReuse/Int32/262144-16 9.35ms ± 1% 5.05ms ± 2% -46.00% (p=0.000 n=10+10) 342 MapPutReuse/Int32/524288-16 20.4ms ± 0% 11.3ms ± 5% -44.58% (p=0.000 n=9+10) 343 MapPutReuse/Int32/1048576-16 43.4ms ± 1% 37.7ms ±14% -13.10% (p=0.000 n=10+10) 344 MapPutReuse/Int32/2097152-16 107ms ± 1% 122ms ± 6% +13.64% (p=0.000 n=10+10) 345 MapPutReuse/Int32/4194304-16 266ms ± 1% 263ms ± 5% ~ (p=0.968 n=9+10) 346 MapPutReuse/String/6-16 103ns ± 0% 97ns ± 2% -5.47% (p=0.000 n=10+10) 347 MapPutReuse/String/12-16 298ns ± 0% 184ns ± 1% -38.21% (p=0.000 n=10+10) 348 MapPutReuse/String/18-16 494ns ± 0% 273ns ± 0% -44.79% (p=0.000 n=9+9) 349 MapPutReuse/String/24-16 726ns ± 0% 368ns ± 1% -49.27% (p=0.000 n=10+10) 350 MapPutReuse/String/30-16 855ns ± 0% 478ns ± 7% -44.05% (p=0.000 n=9+10) 351 MapPutReuse/String/64-16 1.84µs ± 0% 0.99µs ±11% -46.31% (p=0.000 n=9+8) 352 MapPutReuse/String/128-16 3.71µs ± 0% 1.86µs ± 1% -49.94% (p=0.000 n=10+9) 353 MapPutReuse/String/256-16 7.41µs ± 1% 3.76µs ± 6% -49.24% (p=0.000 n=10+10) 354 MapPutReuse/String/512-16 14.8µs ± 0% 7.8µs ± 5% -47.39% (p=0.000 n=10+10) 355 MapPutReuse/String/1024-16 31.1µs ± 0% 16.5µs ± 2% -46.91% (p=0.000 n=9+10) 356 MapPutReuse/String/2048-16 63.7µs ± 0% 36.1µs ± 1% -43.26% (p=0.000 n=9+9) 357 MapPutReuse/String/4096-16 130µs ± 0% 85µs ± 2% -34.69% (p=0.000 n=9+10) 358 MapPutReuse/String/8192-16 268µs ± 0% 178µs ± 0% -33.75% (p=0.000 n=10+9) 359 MapPutReuse/String/32768-16 1.26ms ± 1% 0.89ms ± 3% -28.93% (p=0.000 n=9+10) 360 MapPutReuse/String/65536-16 2.66ms ± 1% 2.00ms ± 3% -24.73% (p=0.000 n=10+10) 361 MapPutReuse/String/131072-16 5.72ms ± 2% 4.38ms ± 3% -23.47% (p=0.000 n=10+10) 362 MapPutReuse/String/262144-16 12.4ms ± 2% 11.1ms ± 2% -10.17% (p=0.000 n=10+10) 363 MapPutReuse/String/524288-16 36.5ms ± 1% 27.3ms ±17% -25.33% (p=0.000 n=10+10) 364 MapPutReuse/String/1048576-16 83.4ms ± 2% 81.3ms ±10% ~ (p=0.065 n=9+10) 365 MapPutReuse/String/2097152-16 197ms ± 1% 208ms ± 4% +5.68% (p=0.000 n=9+10) 366 MapPutReuse/String/4194304-16 433ms ± 1% 456ms ± 1% +5.28% (p=0.000 n=9+10) 367 MapPutDelete/Int64/6-16 27.2ns ± 0% 25.3ns ± 1% -6.91% (p=0.000 n=9+10) 368 MapPutDelete/Int64/12-16 28.5ns ± 3% 23.9ns ± 6% -16.24% (p=0.000 n=9+10) 369 MapPutDelete/Int64/18-16 27.2ns ± 8% 21.9ns ±10% -19.18% (p=0.000 n=10+10) 370 MapPutDelete/Int64/24-16 28.5ns ± 2% 24.9ns ± 9% -12.50% (p=0.000 n=8+10) 371 MapPutDelete/Int64/30-16 26.9ns ± 7% 20.1ns ± 7% -25.57% (p=0.000 n=10+10) 372 MapPutDelete/Int64/64-16 26.9ns ± 4% 20.5ns ± 9% -23.87% (p=0.000 n=10+10) 373 MapPutDelete/Int64/128-16 27.0ns ± 3% 20.9ns ± 7% -22.50% (p=0.000 n=10+9) 374 MapPutDelete/Int64/256-16 27.1ns ± 2% 21.1ns ± 5% -22.16% (p=0.000 n=10+10) 375 MapPutDelete/Int64/512-16 27.2ns ± 2% 22.1ns ± 6% -18.93% (p=0.000 n=10+10) 376 MapPutDelete/Int64/1024-16 32.8ns ± 2% 22.7ns ± 5% -30.81% (p=0.000 n=10+10) 377 MapPutDelete/Int64/2048-16 45.8ns ± 2% 23.2ns ± 6% -49.37% (p=0.000 n=10+9) 378 MapPutDelete/Int64/4096-16 51.7ns ± 1% 28.1ns ± 2% -45.58% (p=0.000 n=10+10) 379 MapPutDelete/Int64/8192-16 54.5ns ± 1% 28.9ns ± 2% -46.99% (p=0.000 n=9+10) 380 MapPutDelete/Int64/32768-16 57.6ns ± 0% 31.1ns ± 1% -45.98% (p=0.000 n=10+10) 381 MapPutDelete/Int64/65536-16 64.5ns ± 1% 36.2ns ± 2% -43.82% (p=0.000 n=10+8) 382 MapPutDelete/Int64/131072-16 69.8ns ± 1% 42.8ns ± 2% -38.59% (p=0.000 n=8+10) 383 MapPutDelete/Int64/262144-16 75.4ns ± 2% 52.9ns ± 9% -29.79% (p=0.000 n=9+10) 384 MapPutDelete/Int64/524288-16 81.4ns ± 1% 70.5ns ±17% -13.30% (p=0.000 n=9+10) 385 MapPutDelete/Int64/1048576-16 87.4ns ± 2% 94.4ns ± 9% +7.97% (p=0.007 n=10+10) 386 MapPutDelete/Int64/2097152-16 111ns ± 2% 101ns ± 3% -9.45% (p=0.000 n=10+10) 387 MapPutDelete/Int64/4194304-16 143ns ± 1% 109ns ± 2% -23.90% (p=0.000 n=10+10) 388 MapPutDelete/Int32/6-16 26.0ns ± 0% 21.3ns ± 0% -18.10% (p=0.000 n=9+10) 389 MapPutDelete/Int32/12-16 27.0ns ± 2% 21.1ns ±14% -21.80% (p=0.000 n=9+10) 390 MapPutDelete/Int32/18-16 26.0ns ± 6% 19.5ns ±10% -25.08% (p=0.000 n=9+10) 391 MapPutDelete/Int32/24-16 28.2ns ± 4% 21.7ns ±13% -23.04% (p=0.000 n=10+10) 392 MapPutDelete/Int32/30-16 25.7ns ± 8% 18.9ns ± 6% -26.38% (p=0.000 n=10+10) 393 MapPutDelete/Int32/64-16 25.7ns ± 5% 19.1ns ± 7% -25.73% (p=0.000 n=10+10) 394 MapPutDelete/Int32/128-16 25.7ns ± 3% 20.2ns ± 9% -21.24% (p=0.000 n=10+10) 395 MapPutDelete/Int32/256-16 25.9ns ± 3% 20.1ns ± 6% -22.51% (p=0.000 n=9+10) 396 MapPutDelete/Int32/512-16 26.8ns ± 7% 20.2ns ± 4% -24.36% (p=0.000 n=10+9) 397 MapPutDelete/Int32/1024-16 31.9ns ± 2% 21.1ns ± 6% -33.82% (p=0.000 n=10+10) 398 MapPutDelete/Int32/2048-16 43.5ns ± 2% 21.1ns ± 5% -51.51% (p=0.000 n=10+10) 399 MapPutDelete/Int32/4096-16 49.9ns ± 1% 26.2ns ± 5% -47.53% (p=0.000 n=10+10) 400 MapPutDelete/Int32/8192-16 52.6ns ± 1% 26.9ns ± 4% -48.81% (p=0.000 n=10+9) 401 MapPutDelete/Int32/32768-16 55.0ns ± 0% 28.1ns ± 1% -48.91% (p=0.000 n=9+10) 402 MapPutDelete/Int32/65536-16 57.4ns ± 1% 29.8ns ± 1% -48.04% (p=0.000 n=9+10) 403 MapPutDelete/Int32/131072-16 65.2ns ± 2% 35.1ns ± 5% -46.24% (p=0.000 n=10+10) 404 MapPutDelete/Int32/262144-16 68.7ns ± 2% 38.0ns ± 2% -44.68% (p=0.000 n=10+10) 405 MapPutDelete/Int32/524288-16 75.2ns ± 2% 43.8ns ±14% -41.68% (p=0.000 n=10+10) 406 MapPutDelete/Int32/1048576-16 80.8ns ± 2% 58.8ns ±13% -27.17% (p=0.000 n=10+10) 407 MapPutDelete/Int32/2097152-16 88.1ns ± 3% 72.9ns ± 6% -17.31% (p=0.000 n=10+10) 408 MapPutDelete/Int32/4194304-16 119ns ± 1% 90ns ± 4% -23.91% (p=0.000 n=7+10) 409 MapPutDelete/String/6-16 31.1ns ± 0% 25.9ns ± 1% -16.67% (p=0.000 n=8+9) 410 MapPutDelete/String/12-16 32.4ns ± 2% 30.6ns ±16% ~ (p=0.097 n=8+10) 411 MapPutDelete/String/18-16 31.3ns ± 2% 28.4ns ±12% -9.23% (p=0.003 n=9+10) 412 MapPutDelete/String/24-16 33.1ns ± 4% 33.0ns ± 9% ~ (p=0.579 n=10+10) 413 MapPutDelete/String/30-16 30.2ns ± 3% 28.7ns ±12% ~ (p=0.113 n=9+9) 414 MapPutDelete/String/64-16 31.2ns ± 2% 29.8ns ±16% ~ (p=0.326 n=9+10) 415 MapPutDelete/String/128-16 31.2ns ± 1% 29.9ns ±14% ~ (p=0.165 n=8+10) 416 MapPutDelete/String/256-16 31.5ns ± 3% 30.2ns ±12% ~ (p=0.075 n=10+10) 417 MapPutDelete/String/512-16 32.1ns ± 2% 30.7ns ± 9% -4.39% (p=0.030 n=10+10) 418 MapPutDelete/String/1024-16 47.8ns ± 4% 31.4ns ± 4% -34.36% (p=0.000 n=10+8) 419 MapPutDelete/String/2048-16 62.1ns ± 1% 33.0ns ± 1% -46.94% (p=0.000 n=10+9) 420 MapPutDelete/String/4096-16 69.3ns ± 1% 41.3ns ± 2% -40.36% (p=0.000 n=10+10) 421 MapPutDelete/String/8192-16 71.0ns ± 1% 42.0ns ± 3% -40.93% (p=0.000 n=10+10) 422 MapPutDelete/String/32768-16 83.2ns ± 1% 48.9ns ± 1% -41.22% (p=0.000 n=9+10) 423 MapPutDelete/String/65536-16 87.7ns ± 1% 55.3ns ± 3% -37.00% (p=0.000 n=9+10) 424 MapPutDelete/String/131072-16 91.5ns ± 2% 69.8ns ± 8% -23.68% (p=0.000 n=10+10) 425 MapPutDelete/String/262144-16 102ns ± 1% 96ns ±20% ~ (p=0.138 n=10+10) 426 MapPutDelete/String/524288-16 113ns ± 2% 140ns ±17% +24.65% (p=0.000 n=10+10) 427 MapPutDelete/String/1048576-16 140ns ± 2% 159ns ± 4% +14.06% (p=0.000 n=10+10) 428 MapPutDelete/String/2097152-16 177ns ± 2% 174ns ± 2% ~ (p=0.063 n=10+10) 429 MapPutDelete/String/4194304-16 205ns ± 2% 185ns ± 2% -9.75% (p=0.000 n=10+10) 430 ``` 431 </details> 432 433 <details> 434 <summary>Memory: Go's builtin map (old) vs swiss.Map (new)</summary> 435 436 ``` 437 name old alloc/op new alloc/op delta 438 MapIter/Int/6-16 0.00B 0.00B ~ (all equal) 439 MapIter/Int/12-16 0.00B 0.00B ~ (all equal) 440 MapIter/Int/18-16 0.00B 0.00B ~ (all equal) 441 MapIter/Int/24-16 0.00B 0.00B ~ (all equal) 442 MapIter/Int/30-16 0.00B 0.00B ~ (all equal) 443 MapIter/Int/64-16 0.00B 0.00B ~ (all equal) 444 MapIter/Int/128-16 0.00B 0.00B ~ (all equal) 445 MapIter/Int/256-16 0.00B 0.00B ~ (all equal) 446 MapIter/Int/512-16 0.00B 0.00B ~ (all equal) 447 MapIter/Int/1024-16 0.00B 0.00B ~ (all equal) 448 MapIter/Int/2048-16 0.00B 0.00B ~ (all equal) 449 MapIter/Int/4096-16 0.00B 0.00B ~ (all equal) 450 MapIter/Int/8192-16 0.00B 0.00B ~ (all equal) 451 MapIter/Int/32768-16 0.00B 0.00B ~ (all equal) 452 MapIter/Int/65536-16 0.00B 0.00B ~ (all equal) 453 MapIter/Int/131072-16 0.00B 0.00B ~ (all equal) 454 MapIter/Int/262144-16 0.00B 0.00B ~ (all equal) 455 MapIter/Int/524288-16 0.00B 0.00B ~ (all equal) 456 MapIter/Int/1048576-16 0.00B 0.00B ~ (all equal) 457 MapIter/Int/2097152-16 0.00B 0.00B ~ (all equal) 458 MapIter/Int/4194304-16 0.00B 0.00B ~ (all equal) 459 MapGetHit/Int64/6-16 0.00B 0.00B ~ (all equal) 460 MapGetHit/Int64/12-16 0.00B 0.00B ~ (all equal) 461 MapGetHit/Int64/18-16 0.00B 0.00B ~ (all equal) 462 MapGetHit/Int64/24-16 0.00B 0.00B ~ (all equal) 463 MapGetHit/Int64/30-16 0.00B 0.00B ~ (all equal) 464 MapGetHit/Int64/64-16 0.00B 0.00B ~ (all equal) 465 MapGetHit/Int64/128-16 0.00B 0.00B ~ (all equal) 466 MapGetHit/Int64/256-16 0.00B 0.00B ~ (all equal) 467 MapGetHit/Int64/512-16 0.00B 0.00B ~ (all equal) 468 MapGetHit/Int64/1024-16 0.00B 0.00B ~ (all equal) 469 MapGetHit/Int64/2048-16 0.00B 0.00B ~ (all equal) 470 MapGetHit/Int64/4096-16 0.00B 0.00B ~ (all equal) 471 MapGetHit/Int64/8192-16 0.00B 0.00B ~ (all equal) 472 MapGetHit/Int64/32768-16 0.00B 0.00B ~ (all equal) 473 MapGetHit/Int64/65536-16 0.00B 0.00B ~ (all equal) 474 MapGetHit/Int64/131072-16 0.00B 0.00B ~ (all equal) 475 MapGetHit/Int64/262144-16 0.00B 0.00B ~ (all equal) 476 MapGetHit/Int64/524288-16 0.00B 0.00B ~ (all equal) 477 MapGetHit/Int64/1048576-16 0.00B 0.00B ~ (all equal) 478 MapGetHit/Int64/2097152-16 0.00B 0.00B ~ (all equal) 479 MapGetHit/Int64/4194304-16 0.00B 0.00B ~ (all equal) 480 MapGetHit/Int32/6-16 0.00B 0.00B ~ (all equal) 481 MapGetHit/Int32/12-16 0.00B 0.00B ~ (all equal) 482 MapGetHit/Int32/18-16 0.00B 0.00B ~ (all equal) 483 MapGetHit/Int32/24-16 0.00B 0.00B ~ (all equal) 484 MapGetHit/Int32/30-16 0.00B 0.00B ~ (all equal) 485 MapGetHit/Int32/64-16 0.00B 0.00B ~ (all equal) 486 MapGetHit/Int32/128-16 0.00B 0.00B ~ (all equal) 487 MapGetHit/Int32/256-16 0.00B 0.00B ~ (all equal) 488 MapGetHit/Int32/512-16 0.00B 0.00B ~ (all equal) 489 MapGetHit/Int32/1024-16 0.00B 0.00B ~ (all equal) 490 MapGetHit/Int32/2048-16 0.00B 0.00B ~ (all equal) 491 MapGetHit/Int32/4096-16 0.00B 0.00B ~ (all equal) 492 MapGetHit/Int32/8192-16 0.00B 0.00B ~ (all equal) 493 MapGetHit/Int32/32768-16 0.00B 0.00B ~ (all equal) 494 MapGetHit/Int32/65536-16 0.00B 0.00B ~ (all equal) 495 MapGetHit/Int32/131072-16 0.00B 0.00B ~ (all equal) 496 MapGetHit/Int32/262144-16 0.00B 0.00B ~ (all equal) 497 MapGetHit/Int32/524288-16 0.00B 0.00B ~ (all equal) 498 MapGetHit/Int32/1048576-16 0.00B 0.00B ~ (all equal) 499 MapGetHit/Int32/2097152-16 0.00B 0.00B ~ (all equal) 500 MapGetHit/Int32/4194304-16 0.00B 0.00B ~ (all equal) 501 MapGetHit/String/6-16 0.00B 0.00B ~ (all equal) 502 MapGetHit/String/12-16 0.00B 0.00B ~ (all equal) 503 MapGetHit/String/18-16 0.00B 0.00B ~ (all equal) 504 MapGetHit/String/24-16 0.00B 0.00B ~ (all equal) 505 MapGetHit/String/30-16 0.00B 0.00B ~ (all equal) 506 MapGetHit/String/64-16 0.00B 0.00B ~ (all equal) 507 MapGetHit/String/128-16 0.00B 0.00B ~ (all equal) 508 MapGetHit/String/256-16 0.00B 0.00B ~ (all equal) 509 MapGetHit/String/512-16 0.00B 0.00B ~ (all equal) 510 MapGetHit/String/1024-16 0.00B 0.00B ~ (all equal) 511 MapGetHit/String/2048-16 0.00B 0.00B ~ (all equal) 512 MapGetHit/String/4096-16 0.00B 0.00B ~ (all equal) 513 MapGetHit/String/8192-16 0.00B 0.00B ~ (all equal) 514 MapGetHit/String/32768-16 0.00B 0.00B ~ (all equal) 515 MapGetHit/String/65536-16 0.00B 0.00B ~ (all equal) 516 MapGetHit/String/131072-16 0.00B 0.00B ~ (all equal) 517 MapGetHit/String/262144-16 0.00B 0.00B ~ (all equal) 518 MapGetHit/String/524288-16 0.00B 0.00B ~ (all equal) 519 MapGetHit/String/1048576-16 0.00B 0.00B ~ (all equal) 520 MapGetHit/String/2097152-16 0.00B 0.00B ~ (all equal) 521 MapGetHit/String/4194304-16 0.00B 0.00B ~ (all equal) 522 MapGetMiss/Int64/6-16 0.00B 0.00B ~ (all equal) 523 MapGetMiss/Int64/12-16 0.00B 0.00B ~ (all equal) 524 MapGetMiss/Int64/18-16 0.00B 0.00B ~ (all equal) 525 MapGetMiss/Int64/24-16 0.00B 0.00B ~ (all equal) 526 MapGetMiss/Int64/30-16 0.00B 0.00B ~ (all equal) 527 MapGetMiss/Int64/64-16 0.00B 0.00B ~ (all equal) 528 MapGetMiss/Int64/128-16 0.00B 0.00B ~ (all equal) 529 MapGetMiss/Int64/256-16 0.00B 0.00B ~ (all equal) 530 MapGetMiss/Int64/512-16 0.00B 0.00B ~ (all equal) 531 MapGetMiss/Int64/1024-16 0.00B 0.00B ~ (all equal) 532 MapGetMiss/Int64/2048-16 0.00B 0.00B ~ (all equal) 533 MapGetMiss/Int64/4096-16 0.00B 0.00B ~ (all equal) 534 MapGetMiss/Int64/8192-16 0.00B 0.00B ~ (all equal) 535 MapGetMiss/Int64/32768-16 0.00B 0.00B ~ (all equal) 536 MapGetMiss/Int64/65536-16 0.00B 0.00B ~ (all equal) 537 MapGetMiss/Int64/131072-16 0.00B 0.00B ~ (all equal) 538 MapGetMiss/Int64/262144-16 0.00B 0.00B ~ (all equal) 539 MapGetMiss/Int64/524288-16 0.00B 0.00B ~ (all equal) 540 MapGetMiss/Int64/1048576-16 0.00B 0.00B ~ (all equal) 541 MapGetMiss/Int64/2097152-16 0.00B 0.00B ~ (all equal) 542 MapGetMiss/Int64/4194304-16 0.00B 0.00B ~ (all equal) 543 MapGetMiss/Int32/6-16 0.00B 0.00B ~ (all equal) 544 MapGetMiss/Int32/12-16 0.00B 0.00B ~ (all equal) 545 MapGetMiss/Int32/18-16 0.00B 0.00B ~ (all equal) 546 MapGetMiss/Int32/24-16 0.00B 0.00B ~ (all equal) 547 MapGetMiss/Int32/30-16 0.00B 0.00B ~ (all equal) 548 MapGetMiss/Int32/64-16 0.00B 0.00B ~ (all equal) 549 MapGetMiss/Int32/128-16 0.00B 0.00B ~ (all equal) 550 MapGetMiss/Int32/256-16 0.00B 0.00B ~ (all equal) 551 MapGetMiss/Int32/512-16 0.00B 0.00B ~ (all equal) 552 MapGetMiss/Int32/1024-16 0.00B 0.00B ~ (all equal) 553 MapGetMiss/Int32/2048-16 0.00B 0.00B ~ (all equal) 554 MapGetMiss/Int32/4096-16 0.00B 0.00B ~ (all equal) 555 MapGetMiss/Int32/8192-16 0.00B 0.00B ~ (all equal) 556 MapGetMiss/Int32/32768-16 0.00B 0.00B ~ (all equal) 557 MapGetMiss/Int32/65536-16 0.00B 0.00B ~ (all equal) 558 MapGetMiss/Int32/131072-16 0.00B 0.00B ~ (all equal) 559 MapGetMiss/Int32/262144-16 0.00B 0.00B ~ (all equal) 560 MapGetMiss/Int32/524288-16 0.00B 0.00B ~ (all equal) 561 MapGetMiss/Int32/1048576-16 0.00B 0.00B ~ (all equal) 562 MapGetMiss/Int32/2097152-16 0.00B 0.00B ~ (all equal) 563 MapGetMiss/Int32/4194304-16 0.00B 0.00B ~ (all equal) 564 MapGetMiss/String/6-16 0.00B 0.00B ~ (all equal) 565 MapGetMiss/String/12-16 0.00B 0.00B ~ (all equal) 566 MapGetMiss/String/18-16 0.00B 0.00B ~ (all equal) 567 MapGetMiss/String/24-16 0.00B 0.00B ~ (all equal) 568 MapGetMiss/String/30-16 0.00B 0.00B ~ (all equal) 569 MapGetMiss/String/64-16 0.00B 0.00B ~ (all equal) 570 MapGetMiss/String/128-16 0.00B 0.00B ~ (all equal) 571 MapGetMiss/String/256-16 0.00B 0.00B ~ (all equal) 572 MapGetMiss/String/512-16 0.00B 0.00B ~ (all equal) 573 MapGetMiss/String/1024-16 0.00B 0.00B ~ (all equal) 574 MapGetMiss/String/2048-16 0.00B 0.00B ~ (all equal) 575 MapGetMiss/String/4096-16 0.00B 0.00B ~ (all equal) 576 MapGetMiss/String/8192-16 0.00B 0.00B ~ (all equal) 577 MapGetMiss/String/32768-16 0.00B 0.00B ~ (all equal) 578 MapGetMiss/String/65536-16 0.00B 0.00B ~ (all equal) 579 MapGetMiss/String/131072-16 0.00B 0.00B ~ (all equal) 580 MapGetMiss/String/262144-16 0.00B 0.00B ~ (all equal) 581 MapGetMiss/String/524288-16 0.00B 0.00B ~ (all equal) 582 MapGetMiss/String/1048576-16 0.00B 0.00B ~ (all equal) 583 MapGetMiss/String/2097152-16 0.00B 0.00B ~ (all equal) 584 MapGetMiss/String/4194304-16 0.00B 0.00B ~ (all equal) 585 MapPutGrow/Int64/6-16 0.00B 144.00B ± 0% +Inf% (p=0.000 n=10+10) 586 MapPutGrow/Int64/12-16 317B ± 0% 432B ± 0% +36.28% (p=0.000 n=10+10) 587 MapPutGrow/Int64/18-16 931B ± 0% 1008B ± 0% +8.27% (p=0.000 n=10+10) 588 MapPutGrow/Int64/24-16 1.01kB ± 0% 1.01kB ± 0% -0.10% (p=0.000 n=9+10) 589 MapPutGrow/Int64/30-16 2.22kB ± 0% 2.16kB ± 0% -2.65% (p=0.000 n=10+10) 590 MapPutGrow/Int64/64-16 5.18kB ± 0% 4.46kB ± 0% -13.77% (p=0.000 n=7+10) 591 MapPutGrow/Int64/128-16 10.8kB ± 0% 9.3kB ± 0% -13.85% (p=0.000 n=10+10) 592 MapPutGrow/Int64/256-16 21.5kB ± 0% 18.8kB ± 0% -12.48% (p=0.000 n=10+10) 593 MapPutGrow/Int64/512-16 43.2kB ± 0% 37.2kB ± 0% -13.78% (p=0.000 n=10+10) 594 MapPutGrow/Int64/1024-16 86.6kB ± 0% 78.2kB ± 0% -9.68% (p=0.000 n=10+10) 595 MapPutGrow/Int64/2048-16 173kB ± 0% 152kB ± 0% -12.34% (p=0.000 n=9+10) 596 MapPutGrow/Int64/4096-16 347kB ± 0% 226kB ± 0% -34.94% (p=0.000 n=10+10) 597 MapPutGrow/Int64/8192-16 686kB ± 0% 373kB ± 0% -45.58% (p=0.000 n=8+10) 598 MapPutGrow/Int64/32768-16 2.72MB ± 0% 1.26MB ± 0% -53.72% (p=0.000 n=9+10) 599 MapPutGrow/Int64/65536-16 5.45MB ± 0% 2.44MB ± 0% -55.26% (p=0.000 n=10+8) 600 MapPutGrow/Int64/131072-16 10.9MB ± 0% 4.8MB ± 0% -56.05% (p=0.000 n=9+9) 601 MapPutGrow/Int64/262144-16 21.9MB ± 0% 9.5MB ± 0% -56.46% (p=0.000 n=10+10) 602 MapPutGrow/Int64/524288-16 43.8MB ± 0% 19.0MB ± 0% -56.67% (p=0.000 n=10+10) 603 MapPutGrow/Int64/1048576-16 87.7MB ± 0% 37.9MB ± 0% -56.84% (p=0.000 n=10+10) 604 MapPutGrow/Int64/2097152-16 176MB ± 0% 76MB ± 0% -56.98% (p=0.000 n=10+10) 605 MapPutGrow/Int64/4194304-16 352MB ± 0% 151MB ± 0% -57.07% (p=0.000 n=10+8) 606 MapPutGrow/Int32/6-16 0.00B 80.00B ± 0% +Inf% (p=0.000 n=10+10) 607 MapPutGrow/Int32/12-16 179B ± 0% 224B ± 0% +25.14% (p=0.000 n=10+10) 608 MapPutGrow/Int32/18-16 525B ± 0% 512B ± 0% -2.48% (p=0.000 n=10+10) 609 MapPutGrow/Int32/24-16 577B ± 0% 512B ± 0% -11.27% (p=0.000 n=10+10) 610 MapPutGrow/Int32/30-16 1.25kB ± 0% 1.09kB ± 0% -13.31% (p=0.000 n=9+10) 611 MapPutGrow/Int32/64-16 2.84kB ± 0% 2.24kB ± 0% -21.10% (p=0.002 n=8+10) 612 MapPutGrow/Int32/128-16 6.18kB ± 0% 4.54kB ± 0% -26.44% (p=0.000 n=10+10) 613 MapPutGrow/Int32/256-16 12.6kB ± 0% 9.4kB ± 0% -25.12% (p=0.000 n=10+10) 614 MapPutGrow/Int32/512-16 23.9kB ± 0% 18.9kB ± 0% -20.99% (p=0.000 n=9+10) 615 MapPutGrow/Int32/1024-16 47.7kB ± 0% 37.3kB ± 0% -21.86% (p=0.000 n=10+10) 616 MapPutGrow/Int32/2048-16 101kB ± 0% 78kB ± 0% -22.55% (p=0.000 n=9+10) 617 MapPutGrow/Int32/4096-16 194kB ± 0% 119kB ± 0% -38.53% (p=0.000 n=10+10) 618 MapPutGrow/Int32/8192-16 388kB ± 0% 201kB ± 0% -48.14% (p=0.000 n=10+10) 619 MapPutGrow/Int32/32768-16 1.53MB ± 0% 0.69MB ± 0% -54.63% (p=0.000 n=9+7) 620 MapPutGrow/Int32/65536-16 3.07MB ± 0% 1.35MB ± 0% -56.03% (p=0.000 n=10+10) 621 MapPutGrow/Int32/131072-16 6.16MB ± 0% 2.66MB ± 0% -56.78% (p=0.000 n=10+10) 622 MapPutGrow/Int32/262144-16 12.3MB ± 0% 5.3MB ± 0% -57.16% (p=0.000 n=10+10) 623 MapPutGrow/Int32/524288-16 24.7MB ± 0% 10.5MB ± 0% -57.36% (p=0.000 n=10+9) 624 MapPutGrow/Int32/1048576-16 49.6MB ± 0% 21.0MB ± 0% -57.59% (p=0.000 n=9+10) 625 MapPutGrow/Int32/2097152-16 100MB ± 0% 42MB ± 0% -57.78% (p=0.000 n=9+8) 626 MapPutGrow/Int32/4194304-16 200MB ± 0% 84MB ± 0% -57.93% (p=0.000 n=9+10) 627 MapPutGrow/String/6-16 0.00B 288.00B ± 0% +Inf% (p=0.000 n=10+10) 628 MapPutGrow/String/12-16 618B ± 0% 864B ± 0% +39.81% (p=0.000 n=8+10) 629 MapPutGrow/String/18-16 1.83kB ± 0% 2.02kB ± 0% +10.34% (p=0.000 n=9+10) 630 MapPutGrow/String/24-16 1.94kB ± 0% 2.02kB ± 0% +3.70% (p=0.000 n=8+10) 631 MapPutGrow/String/30-16 4.34kB ± 0% 4.32kB ± 0% -0.39% (p=0.002 n=8+10) 632 MapPutGrow/String/64-16 9.66kB ± 0% 9.18kB ± 0% -4.95% (p=0.000 n=10+10) 633 MapPutGrow/String/128-16 19.8kB ± 0% 18.7kB ± 0% -5.68% (p=0.000 n=9+10) 634 MapPutGrow/String/256-16 40.2kB ± 0% 37.1kB ± 0% -7.67% (p=0.000 n=10+10) 635 MapPutGrow/String/512-16 83.2kB ± 0% 78.0kB ± 0% -6.22% (p=0.000 n=10+10) 636 MapPutGrow/String/1024-16 166kB ± 0% 152kB ± 0% -8.84% (p=0.000 n=10+10) 637 MapPutGrow/String/2048-16 325kB ± 0% 291kB ± 0% -10.33% (p=0.000 n=9+10) 638 MapPutGrow/String/4096-16 641kB ± 0% 430kB ± 0% -32.88% (p=0.000 n=10+10) 639 MapPutGrow/String/8192-16 1.27MB ± 0% 0.71MB ± 0% -44.38% (p=0.000 n=10+8) 640 MapPutGrow/String/32768-16 5.08MB ± 0% 2.38MB ± 0% -53.11% (p=0.000 n=10+10) 641 MapPutGrow/String/65536-16 10.2MB ± 0% 4.6MB ± 0% -54.62% (p=0.000 n=10+10) 642 MapPutGrow/String/131072-16 20.3MB ± 0% 9.1MB ± 0% -55.37% (p=0.000 n=10+9) 643 MapPutGrow/String/262144-16 40.6MB ± 0% 18.0MB ± 0% -55.74% (p=0.000 n=10+10) 644 MapPutGrow/String/524288-16 81.3MB ± 0% 35.8MB ± 0% -55.93% (p=0.000 n=10+10) 645 MapPutGrow/String/1048576-16 163MB ± 0% 71MB ± 0% -56.03% (p=0.000 n=10+8) 646 MapPutGrow/String/2097152-16 325MB ± 0% 143MB ± 0% -56.07% (p=0.000 n=10+10) 647 MapPutGrow/String/4194304-16 650MB ± 0% 285MB ± 0% -56.10% (p=0.000 n=10+10) 648 MapPutPreAllocate/Int64/6-16 0.00B 144.00B ± 0% +Inf% (p=0.000 n=10+10) 649 MapPutPreAllocate/Int64/12-16 317B ± 0% 288B ± 0% -9.15% (p=0.000 n=10+10) 650 MapPutPreAllocate/Int64/18-16 591B ± 0% 576B ± 0% -2.54% (p=0.000 n=10+10) 651 MapPutPreAllocate/Int64/24-16 672B ± 0% 576B ± 0% -14.29% (p=0.000 n=10+10) 652 MapPutPreAllocate/Int64/30-16 1.17kB ± 0% 1.15kB ± 0% -1.20% (p=0.000 n=10+10) 653 MapPutPreAllocate/Int64/64-16 2.72kB ± 0% 2.30kB ± 0% -15.29% (p=0.000 n=10+10) 654 MapPutPreAllocate/Int64/128-16 5.42kB ± 0% 4.86kB ± 0% -10.23% (p=0.000 n=10+10) 655 MapPutPreAllocate/Int64/256-16 10.3kB ± 0% 9.5kB ± 0% -8.02% (p=0.000 n=10+10) 656 MapPutPreAllocate/Int64/512-16 20.6kB ± 0% 18.4kB ± 0% -10.39% (p=0.000 n=10+10) 657 MapPutPreAllocate/Int64/1024-16 41.1kB ± 0% 41.0kB ± 0% -0.37% (p=0.000 n=10+10) 658 MapPutPreAllocate/Int64/2048-16 82.2kB ± 0% 73.7kB ± 0% -10.30% (p=0.000 n=10+10) 659 MapPutPreAllocate/Int64/4096-16 164kB ± 0% 148kB ± 0% -10.25% (p=0.000 n=10+10) 660 MapPutPreAllocate/Int64/8192-16 321kB ± 0% 295kB ± 0% -7.96% (p=0.000 n=9+9) 661 MapPutPreAllocate/Int64/32768-16 1.26MB ± 0% 1.18MB ± 0% -6.18% (p=0.000 n=10+9) 662 MapPutPreAllocate/Int64/65536-16 2.52MB ± 0% 2.36MB ± 0% -6.19% (p=0.000 n=9+10) 663 MapPutPreAllocate/Int64/131072-16 5.03MB ± 0% 4.72MB ± 0% -6.17% (p=0.000 n=10+10) 664 MapPutPreAllocate/Int64/262144-16 10.1MB ± 0% 9.4MB ± 0% -6.11% (p=0.000 n=10+10) 665 MapPutPreAllocate/Int64/524288-16 20.1MB ± 0% 18.9MB ± 0% -6.18% (p=0.000 n=10+10) 666 MapPutPreAllocate/Int64/1048576-16 40.3MB ± 0% 37.8MB ± 0% -6.20% (p=0.000 n=8+10) 667 MapPutPreAllocate/Int64/2097152-16 80.6MB ± 0% 75.5MB ± 0% -6.24% (p=0.000 n=10+10) 668 MapPutPreAllocate/Int64/4194304-16 161MB ± 0% 151MB ± 0% -6.29% (p=0.000 n=9+10) 669 MapPutPreAllocate/Int32/6-16 0.00B 80.00B ± 0% +Inf% (p=0.000 n=10+10) 670 MapPutPreAllocate/Int32/12-16 179B ± 0% 144B ± 0% -19.55% (p=0.000 n=10+10) 671 MapPutPreAllocate/Int32/18-16 330B ± 0% 288B ± 0% -12.73% (p=0.000 n=10+10) 672 MapPutPreAllocate/Int32/24-16 385B ± 0% 288B ± 0% -25.19% (p=0.000 n=10+10) 673 MapPutPreAllocate/Int32/30-16 649B ± 0% 576B ± 0% -11.25% (p=0.000 n=10+10) 674 MapPutPreAllocate/Int32/64-16 1.44kB ± 0% 1.15kB ± 0% -20.11% (p=0.000 n=10+10) 675 MapPutPreAllocate/Int32/128-16 3.11kB ± 0% 2.30kB ± 0% -26.01% (p=0.000 n=10+10) 676 MapPutPreAllocate/Int32/256-16 6.20kB ± 0% 4.86kB ± 0% -21.58% (p=0.000 n=10+10) 677 MapPutPreAllocate/Int32/512-16 11.0kB ± 0% 9.5kB ± 0% -13.66% (p=0.000 n=10+10) 678 MapPutPreAllocate/Int32/1024-16 21.9kB ± 0% 18.4kB ± 0% -15.88% (p=0.000 n=9+10) 679 MapPutPreAllocate/Int32/2048-16 49.4kB ± 0% 41.0kB ± 0% -17.13% (p=0.000 n=10+10) 680 MapPutPreAllocate/Int32/4096-16 90.6kB ± 0% 82.0kB ± 0% -9.55% (p=0.000 n=10+10) 681 MapPutPreAllocate/Int32/8192-16 181kB ± 0% 164kB ± 0% -9.55% (p=0.000 n=9+10) 682 MapPutPreAllocate/Int32/32768-16 701kB ± 0% 656kB ± 0% -6.42% (p=0.000 n=10+10) 683 MapPutPreAllocate/Int32/65536-16 1.40MB ± 0% 1.31MB ± 0% -6.43% (p=0.000 n=10+9) 684 MapPutPreAllocate/Int32/131072-16 2.80MB ± 0% 2.62MB ± 0% -6.39% (p=0.000 n=10+10) 685 MapPutPreAllocate/Int32/262144-16 5.60MB ± 0% 5.25MB ± 0% -6.30% (p=0.000 n=10+10) 686 MapPutPreAllocate/Int32/524288-16 11.2MB ± 0% 10.5MB ± 0% -6.41% (p=0.000 n=8+9) 687 MapPutPreAllocate/Int32/1048576-16 22.4MB ± 0% 21.0MB ± 0% -6.45% (p=0.000 n=9+10) 688 MapPutPreAllocate/Int32/2097152-16 44.9MB ± 0% 42.0MB ± 0% -6.53% (p=0.000 n=10+10) 689 MapPutPreAllocate/Int32/4194304-16 89.9MB ± 0% 84.0MB ± 0% -6.61% (p=0.000 n=10+8) 690 MapPutPreAllocate/String/6-16 0.00B 288.00B ± 0% +Inf% (p=0.000 n=10+10) 691 MapPutPreAllocate/String/12-16 618B ± 0% 576B ± 0% -6.80% (p=0.002 n=8+10) 692 MapPutPreAllocate/String/18-16 1.17kB ± 0% 1.15kB ± 0% -1.87% (p=0.000 n=10+10) 693 MapPutPreAllocate/String/24-16 1.29kB ± 0% 1.15kB ± 0% -10.77% (p=0.000 n=9+10) 694 MapPutPreAllocate/String/30-16 2.32kB ± 0% 2.30kB ± 0% -0.86% (p=0.000 n=10+10) 695 MapPutPreAllocate/String/64-16 4.89kB ± 0% 4.86kB ± 0% -0.59% (p=0.000 n=10+10) 696 MapPutPreAllocate/String/128-16 9.50kB ± 0% 9.47kB ± 0% -0.29% (p=0.000 n=10+10) 697 MapPutPreAllocate/String/256-16 19.1kB ± 0% 18.4kB ± 0% -3.48% (p=0.000 n=10+10) 698 MapPutPreAllocate/String/512-16 41.0kB ± 0% 41.0kB ± 0% -0.06% (p=0.000 n=10+10) 699 MapPutPreAllocate/String/1024-16 81.9kB ± 0% 73.7kB ± 0% -10.03% (p=0.000 n=10+10) 700 MapPutPreAllocate/String/2048-16 156kB ± 0% 139kB ± 0% -10.54% (p=0.000 n=10+10) 701 MapPutPreAllocate/String/4096-16 303kB ± 0% 279kB ± 0% -8.09% (p=0.002 n=8+10) 702 MapPutPreAllocate/String/8192-16 598kB ± 0% 557kB ± 0% -6.83% (p=0.000 n=10+10) 703 MapPutPreAllocate/String/32768-16 2.37MB ± 0% 2.23MB ± 0% -5.86% (p=0.000 n=10+10) 704 MapPutPreAllocate/String/65536-16 4.74MB ± 0% 4.46MB ± 0% -5.86% (p=0.000 n=10+10) 705 MapPutPreAllocate/String/131072-16 9.47MB ± 0% 8.92MB ± 0% -5.86% (p=0.000 n=10+10) 706 MapPutPreAllocate/String/262144-16 18.9MB ± 0% 17.8MB ± 0% -5.86% (p=0.000 n=9+10) 707 MapPutPreAllocate/String/524288-16 37.9MB ± 0% 35.7MB ± 0% -5.86% (p=0.000 n=10+9) 708 MapPutPreAllocate/String/1048576-16 75.8MB ± 0% 71.3MB ± 0% -5.86% (p=0.000 n=10+8) 709 MapPutPreAllocate/String/2097152-16 152MB ± 0% 143MB ± 0% -5.86% (p=0.000 n=9+10) 710 MapPutPreAllocate/String/4194304-16 303MB ± 0% 285MB ± 0% -5.86% (p=0.000 n=10+10) 711 MapPutReuse/Int64/6-16 0.00B 0.00B ~ (all equal) 712 MapPutReuse/Int64/12-16 25.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 713 MapPutReuse/Int64/18-16 13.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 714 MapPutReuse/Int64/24-16 85.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 715 MapPutReuse/Int64/30-16 12.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 716 MapPutReuse/Int64/64-16 8.00B ± 0% 0.00B -100.00% (p=0.000 n=10+10) 717 MapPutReuse/Int64/128-16 18.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 718 MapPutReuse/Int64/256-16 34.0B ± 0% 0.0B -100.00% (p=0.000 n=9+10) 719 MapPutReuse/Int64/512-16 66.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 720 MapPutReuse/Int64/1024-16 128B ± 0% 0B -100.00% (p=0.002 n=8+10) 721 MapPutReuse/Int64/2048-16 252B ± 0% 0B -100.00% (p=0.000 n=6+10) 722 MapPutReuse/Int64/4096-16 506B ± 0% 0B -100.00% (p=0.000 n=10+10) 723 MapPutReuse/Int64/8192-16 1.03kB ± 0% 0.00kB -100.00% (p=0.000 n=9+10) 724 MapPutReuse/Int64/32768-16 4.49kB ± 0% 0.00kB -100.00% (p=0.000 n=10+10) 725 MapPutReuse/Int64/65536-16 9.36kB ± 0% 0.00kB -100.00% (p=0.000 n=9+10) 726 MapPutReuse/Int64/131072-16 17.6kB ± 0% 0.0kB -100.00% (p=0.000 n=10+10) 727 MapPutReuse/Int64/262144-16 29.8kB ± 0% 0.0kB -100.00% (p=0.000 n=10+10) 728 MapPutReuse/Int64/524288-16 72.8kB ± 0% 0.0kB -100.00% (p=0.000 n=10+10) 729 MapPutReuse/Int64/1048576-16 155kB ± 0% 0kB -100.00% (p=0.000 n=10+10) 730 MapPutReuse/Int64/2097152-16 352kB ± 9% 0kB -100.00% (p=0.000 n=10+10) 731 MapPutReuse/Int64/4194304-16 761kB ± 0% 0kB -100.00% (p=0.000 n=10+10) 732 MapPutReuse/Int32/6-16 0.00B 0.00B ~ (all equal) 733 MapPutReuse/Int32/12-16 16.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 734 MapPutReuse/Int32/18-16 8.00B ± 0% 0.00B -100.00% (p=0.000 n=10+10) 735 MapPutReuse/Int32/24-16 54.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 736 MapPutReuse/Int32/30-16 8.00B ± 0% 0.00B -100.00% (p=0.000 n=10+10) 737 MapPutReuse/Int32/64-16 10.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 738 MapPutReuse/Int32/128-16 18.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 739 MapPutReuse/Int32/256-16 34.0B ± 0% 0.0B -100.00% (p=0.002 n=8+10) 740 MapPutReuse/Int32/512-16 66.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 741 MapPutReuse/Int32/1024-16 128B ± 0% 0B -100.00% (p=0.002 n=8+10) 742 MapPutReuse/Int32/2048-16 252B ± 0% 0B -100.00% (p=0.000 n=7+10) 743 MapPutReuse/Int32/4096-16 505B ± 0% 0B -100.00% (p=0.000 n=10+10) 744 MapPutReuse/Int32/8192-16 1.03kB ± 0% 0.00kB -100.00% (p=0.000 n=10+10) 745 MapPutReuse/Int32/32768-16 4.48kB ± 0% 0.00kB -100.00% (p=0.000 n=9+10) 746 MapPutReuse/Int32/65536-16 9.36kB ± 0% 0.00kB -100.00% (p=0.000 n=10+10) 747 MapPutReuse/Int32/131072-16 17.6kB ± 0% 0.0kB -100.00% (p=0.000 n=10+10) 748 MapPutReuse/Int32/262144-16 29.8kB ± 0% 0.0kB -100.00% (p=0.000 n=10+10) 749 MapPutReuse/Int32/524288-16 72.8kB ± 0% 0.0kB -100.00% (p=0.000 n=10+10) 750 MapPutReuse/Int32/1048576-16 155kB ± 0% 0kB -100.00% (p=0.000 n=10+10) 751 MapPutReuse/Int32/2097152-16 348kB ± 8% 0kB -100.00% (p=0.000 n=10+10) 752 MapPutReuse/Int32/4194304-16 761kB ± 0% 0kB -100.00% (p=0.000 n=10+10) 753 MapPutReuse/String/6-16 0.00B 0.00B ~ (all equal) 754 MapPutReuse/String/12-16 41.6B ± 1% 0.0B -100.00% (p=0.000 n=10+10) 755 MapPutReuse/String/18-16 22.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 756 MapPutReuse/String/24-16 139B ± 0% 0B -100.00% (p=0.002 n=8+10) 757 MapPutReuse/String/30-16 20.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10) 758 MapPutReuse/String/64-16 5.00B ± 0% 0.00B -100.00% (p=0.000 n=10+10) 759 MapPutReuse/String/128-16 4.00B ± 0% 0.00B -100.00% (p=0.002 n=8+10) 760 MapPutReuse/String/256-16 0.00B 0.00B ~ (all equal) 761 MapPutReuse/String/512-16 0.00B 0.00B ~ (all equal) 762 MapPutReuse/String/1024-16 0.00B 0.00B ~ (all equal) 763 MapPutReuse/String/2048-16 0.00B 0.00B ~ (all equal) 764 MapPutReuse/String/4096-16 0.00B 0.00B ~ (all equal) 765 MapPutReuse/String/8192-16 0.00B 0.00B ~ (all equal) 766 MapPutReuse/String/32768-16 0.00B 0.00B ~ (all equal) 767 MapPutReuse/String/65536-16 0.00B 0.00B ~ (all equal) 768 MapPutReuse/String/131072-16 0.00B 0.00B ~ (all equal) 769 MapPutReuse/String/262144-16 0.00B 0.00B ~ (all equal) 770 MapPutReuse/String/524288-16 0.00B 0.00B ~ (all equal) 771 MapPutReuse/String/1048576-16 0.00B 0.00B ~ (all equal) 772 MapPutReuse/String/2097152-16 0.00B 0.00B ~ (all equal) 773 MapPutReuse/String/4194304-16 0.00B 0.00B ~ (all equal) 774 MapPutDelete/Int64/6-16 0.00B 0.00B ~ (all equal) 775 MapPutDelete/Int64/12-16 0.00B 0.00B ~ (all equal) 776 MapPutDelete/Int64/18-16 0.00B 0.00B ~ (all equal) 777 MapPutDelete/Int64/24-16 0.00B 0.00B ~ (all equal) 778 MapPutDelete/Int64/30-16 0.00B 0.00B ~ (all equal) 779 MapPutDelete/Int64/64-16 0.00B 0.00B ~ (all equal) 780 MapPutDelete/Int64/128-16 0.00B 0.00B ~ (all equal) 781 MapPutDelete/Int64/256-16 0.00B 0.00B ~ (all equal) 782 MapPutDelete/Int64/512-16 0.00B 0.00B ~ (all equal) 783 MapPutDelete/Int64/1024-16 0.00B 0.00B ~ (all equal) 784 MapPutDelete/Int64/2048-16 0.00B 0.00B ~ (all equal) 785 MapPutDelete/Int64/4096-16 0.00B 0.00B ~ (all equal) 786 MapPutDelete/Int64/8192-16 0.00B 0.00B ~ (all equal) 787 MapPutDelete/Int64/32768-16 0.00B 0.00B ~ (all equal) 788 MapPutDelete/Int64/65536-16 0.00B 0.00B ~ (all equal) 789 MapPutDelete/Int64/131072-16 0.00B 0.00B ~ (all equal) 790 MapPutDelete/Int64/262144-16 0.00B 0.00B ~ (all equal) 791 MapPutDelete/Int64/524288-16 0.00B 0.00B ~ (all equal) 792 MapPutDelete/Int64/1048576-16 0.00B 0.00B ~ (all equal) 793 MapPutDelete/Int64/2097152-16 0.00B 0.00B ~ (all equal) 794 MapPutDelete/Int64/4194304-16 0.00B 0.00B ~ (all equal) 795 MapPutDelete/Int32/6-16 0.00B 0.00B ~ (all equal) 796 MapPutDelete/Int32/12-16 0.00B 0.00B ~ (all equal) 797 MapPutDelete/Int32/18-16 0.00B 0.00B ~ (all equal) 798 MapPutDelete/Int32/24-16 0.00B 0.00B ~ (all equal) 799 MapPutDelete/Int32/30-16 0.00B 0.00B ~ (all equal) 800 MapPutDelete/Int32/64-16 0.00B 0.00B ~ (all equal) 801 MapPutDelete/Int32/128-16 0.00B 0.00B ~ (all equal) 802 MapPutDelete/Int32/256-16 0.00B 0.00B ~ (all equal) 803 MapPutDelete/Int32/512-16 0.00B 0.00B ~ (all equal) 804 MapPutDelete/Int32/1024-16 0.00B 0.00B ~ (all equal) 805 MapPutDelete/Int32/2048-16 0.00B 0.00B ~ (all equal) 806 MapPutDelete/Int32/4096-16 0.00B 0.00B ~ (all equal) 807 MapPutDelete/Int32/8192-16 0.00B 0.00B ~ (all equal) 808 MapPutDelete/Int32/32768-16 0.00B 0.00B ~ (all equal) 809 MapPutDelete/Int32/65536-16 0.00B 0.00B ~ (all equal) 810 MapPutDelete/Int32/131072-16 0.00B 0.00B ~ (all equal) 811 MapPutDelete/Int32/262144-16 0.00B 0.00B ~ (all equal) 812 MapPutDelete/Int32/524288-16 0.00B 0.00B ~ (all equal) 813 MapPutDelete/Int32/1048576-16 0.00B 0.00B ~ (all equal) 814 MapPutDelete/Int32/2097152-16 0.00B 0.00B ~ (all equal) 815 MapPutDelete/Int32/4194304-16 0.00B 0.00B ~ (all equal) 816 MapPutDelete/String/6-16 0.00B 0.00B ~ (all equal) 817 MapPutDelete/String/12-16 0.00B 0.00B ~ (all equal) 818 MapPutDelete/String/18-16 0.00B 0.00B ~ (all equal) 819 MapPutDelete/String/24-16 0.00B 0.00B ~ (all equal) 820 MapPutDelete/String/30-16 0.00B 0.00B ~ (all equal) 821 MapPutDelete/String/64-16 0.00B 0.00B ~ (all equal) 822 MapPutDelete/String/128-16 0.00B 0.00B ~ (all equal) 823 MapPutDelete/String/256-16 0.00B 0.00B ~ (all equal) 824 MapPutDelete/String/512-16 0.00B 0.00B ~ (all equal) 825 MapPutDelete/String/1024-16 0.00B 0.00B ~ (all equal) 826 MapPutDelete/String/2048-16 0.00B 0.00B ~ (all equal) 827 MapPutDelete/String/4096-16 0.00B 0.00B ~ (all equal) 828 MapPutDelete/String/8192-16 0.00B 0.00B ~ (all equal) 829 MapPutDelete/String/32768-16 0.00B 0.00B ~ (all equal) 830 MapPutDelete/String/65536-16 0.00B 0.00B ~ (all equal) 831 MapPutDelete/String/131072-16 0.00B 0.00B ~ (all equal) 832 MapPutDelete/String/262144-16 0.00B 0.00B ~ (all equal) 833 MapPutDelete/String/524288-16 0.00B 0.00B ~ (all equal) 834 MapPutDelete/String/1048576-16 0.00B 0.00B ~ (all equal) 835 MapPutDelete/String/2097152-16 0.00B 0.00B ~ (all equal) 836 MapPutDelete/String/4194304-16 0.00B 0.00B ~ (all equal) 837 838 name old allocs/op new allocs/op delta 839 MapIter/Int/6-16 0.00 0.00 ~ (all equal) 840 MapIter/Int/12-16 0.00 0.00 ~ (all equal) 841 MapIter/Int/18-16 0.00 0.00 ~ (all equal) 842 MapIter/Int/24-16 0.00 0.00 ~ (all equal) 843 MapIter/Int/30-16 0.00 0.00 ~ (all equal) 844 MapIter/Int/64-16 0.00 0.00 ~ (all equal) 845 MapIter/Int/128-16 0.00 0.00 ~ (all equal) 846 MapIter/Int/256-16 0.00 0.00 ~ (all equal) 847 MapIter/Int/512-16 0.00 0.00 ~ (all equal) 848 MapIter/Int/1024-16 0.00 0.00 ~ (all equal) 849 MapIter/Int/2048-16 0.00 0.00 ~ (all equal) 850 MapIter/Int/4096-16 0.00 0.00 ~ (all equal) 851 MapIter/Int/8192-16 0.00 0.00 ~ (all equal) 852 MapIter/Int/32768-16 0.00 0.00 ~ (all equal) 853 MapIter/Int/65536-16 0.00 0.00 ~ (all equal) 854 MapIter/Int/131072-16 0.00 0.00 ~ (all equal) 855 MapIter/Int/262144-16 0.00 0.00 ~ (all equal) 856 MapIter/Int/524288-16 0.00 0.00 ~ (all equal) 857 MapIter/Int/1048576-16 0.00 0.00 ~ (all equal) 858 MapIter/Int/2097152-16 0.00 0.00 ~ (all equal) 859 MapIter/Int/4194304-16 0.00 0.00 ~ (all equal) 860 MapGetHit/Int64/6-16 0.00 0.00 ~ (all equal) 861 MapGetHit/Int64/12-16 0.00 0.00 ~ (all equal) 862 MapGetHit/Int64/18-16 0.00 0.00 ~ (all equal) 863 MapGetHit/Int64/24-16 0.00 0.00 ~ (all equal) 864 MapGetHit/Int64/30-16 0.00 0.00 ~ (all equal) 865 MapGetHit/Int64/64-16 0.00 0.00 ~ (all equal) 866 MapGetHit/Int64/128-16 0.00 0.00 ~ (all equal) 867 MapGetHit/Int64/256-16 0.00 0.00 ~ (all equal) 868 MapGetHit/Int64/512-16 0.00 0.00 ~ (all equal) 869 MapGetHit/Int64/1024-16 0.00 0.00 ~ (all equal) 870 MapGetHit/Int64/2048-16 0.00 0.00 ~ (all equal) 871 MapGetHit/Int64/4096-16 0.00 0.00 ~ (all equal) 872 MapGetHit/Int64/8192-16 0.00 0.00 ~ (all equal) 873 MapGetHit/Int64/32768-16 0.00 0.00 ~ (all equal) 874 MapGetHit/Int64/65536-16 0.00 0.00 ~ (all equal) 875 MapGetHit/Int64/131072-16 0.00 0.00 ~ (all equal) 876 MapGetHit/Int64/262144-16 0.00 0.00 ~ (all equal) 877 MapGetHit/Int64/524288-16 0.00 0.00 ~ (all equal) 878 MapGetHit/Int64/1048576-16 0.00 0.00 ~ (all equal) 879 MapGetHit/Int64/2097152-16 0.00 0.00 ~ (all equal) 880 MapGetHit/Int64/4194304-16 0.00 0.00 ~ (all equal) 881 MapGetHit/Int32/6-16 0.00 0.00 ~ (all equal) 882 MapGetHit/Int32/12-16 0.00 0.00 ~ (all equal) 883 MapGetHit/Int32/18-16 0.00 0.00 ~ (all equal) 884 MapGetHit/Int32/24-16 0.00 0.00 ~ (all equal) 885 MapGetHit/Int32/30-16 0.00 0.00 ~ (all equal) 886 MapGetHit/Int32/64-16 0.00 0.00 ~ (all equal) 887 MapGetHit/Int32/128-16 0.00 0.00 ~ (all equal) 888 MapGetHit/Int32/256-16 0.00 0.00 ~ (all equal) 889 MapGetHit/Int32/512-16 0.00 0.00 ~ (all equal) 890 MapGetHit/Int32/1024-16 0.00 0.00 ~ (all equal) 891 MapGetHit/Int32/2048-16 0.00 0.00 ~ (all equal) 892 MapGetHit/Int32/4096-16 0.00 0.00 ~ (all equal) 893 MapGetHit/Int32/8192-16 0.00 0.00 ~ (all equal) 894 MapGetHit/Int32/32768-16 0.00 0.00 ~ (all equal) 895 MapGetHit/Int32/65536-16 0.00 0.00 ~ (all equal) 896 MapGetHit/Int32/131072-16 0.00 0.00 ~ (all equal) 897 MapGetHit/Int32/262144-16 0.00 0.00 ~ (all equal) 898 MapGetHit/Int32/524288-16 0.00 0.00 ~ (all equal) 899 MapGetHit/Int32/1048576-16 0.00 0.00 ~ (all equal) 900 MapGetHit/Int32/2097152-16 0.00 0.00 ~ (all equal) 901 MapGetHit/Int32/4194304-16 0.00 0.00 ~ (all equal) 902 MapGetHit/String/6-16 0.00 0.00 ~ (all equal) 903 MapGetHit/String/12-16 0.00 0.00 ~ (all equal) 904 MapGetHit/String/18-16 0.00 0.00 ~ (all equal) 905 MapGetHit/String/24-16 0.00 0.00 ~ (all equal) 906 MapGetHit/String/30-16 0.00 0.00 ~ (all equal) 907 MapGetHit/String/64-16 0.00 0.00 ~ (all equal) 908 MapGetHit/String/128-16 0.00 0.00 ~ (all equal) 909 MapGetHit/String/256-16 0.00 0.00 ~ (all equal) 910 MapGetHit/String/512-16 0.00 0.00 ~ (all equal) 911 MapGetHit/String/1024-16 0.00 0.00 ~ (all equal) 912 MapGetHit/String/2048-16 0.00 0.00 ~ (all equal) 913 MapGetHit/String/4096-16 0.00 0.00 ~ (all equal) 914 MapGetHit/String/8192-16 0.00 0.00 ~ (all equal) 915 MapGetHit/String/32768-16 0.00 0.00 ~ (all equal) 916 MapGetHit/String/65536-16 0.00 0.00 ~ (all equal) 917 MapGetHit/String/131072-16 0.00 0.00 ~ (all equal) 918 MapGetHit/String/262144-16 0.00 0.00 ~ (all equal) 919 MapGetHit/String/524288-16 0.00 0.00 ~ (all equal) 920 MapGetHit/String/1048576-16 0.00 0.00 ~ (all equal) 921 MapGetHit/String/2097152-16 0.00 0.00 ~ (all equal) 922 MapGetHit/String/4194304-16 0.00 0.00 ~ (all equal) 923 MapGetMiss/Int64/6-16 0.00 0.00 ~ (all equal) 924 MapGetMiss/Int64/12-16 0.00 0.00 ~ (all equal) 925 MapGetMiss/Int64/18-16 0.00 0.00 ~ (all equal) 926 MapGetMiss/Int64/24-16 0.00 0.00 ~ (all equal) 927 MapGetMiss/Int64/30-16 0.00 0.00 ~ (all equal) 928 MapGetMiss/Int64/64-16 0.00 0.00 ~ (all equal) 929 MapGetMiss/Int64/128-16 0.00 0.00 ~ (all equal) 930 MapGetMiss/Int64/256-16 0.00 0.00 ~ (all equal) 931 MapGetMiss/Int64/512-16 0.00 0.00 ~ (all equal) 932 MapGetMiss/Int64/1024-16 0.00 0.00 ~ (all equal) 933 MapGetMiss/Int64/2048-16 0.00 0.00 ~ (all equal) 934 MapGetMiss/Int64/4096-16 0.00 0.00 ~ (all equal) 935 MapGetMiss/Int64/8192-16 0.00 0.00 ~ (all equal) 936 MapGetMiss/Int64/32768-16 0.00 0.00 ~ (all equal) 937 MapGetMiss/Int64/65536-16 0.00 0.00 ~ (all equal) 938 MapGetMiss/Int64/131072-16 0.00 0.00 ~ (all equal) 939 MapGetMiss/Int64/262144-16 0.00 0.00 ~ (all equal) 940 MapGetMiss/Int64/524288-16 0.00 0.00 ~ (all equal) 941 MapGetMiss/Int64/1048576-16 0.00 0.00 ~ (all equal) 942 MapGetMiss/Int64/2097152-16 0.00 0.00 ~ (all equal) 943 MapGetMiss/Int64/4194304-16 0.00 0.00 ~ (all equal) 944 MapGetMiss/Int32/6-16 0.00 0.00 ~ (all equal) 945 MapGetMiss/Int32/12-16 0.00 0.00 ~ (all equal) 946 MapGetMiss/Int32/18-16 0.00 0.00 ~ (all equal) 947 MapGetMiss/Int32/24-16 0.00 0.00 ~ (all equal) 948 MapGetMiss/Int32/30-16 0.00 0.00 ~ (all equal) 949 MapGetMiss/Int32/64-16 0.00 0.00 ~ (all equal) 950 MapGetMiss/Int32/128-16 0.00 0.00 ~ (all equal) 951 MapGetMiss/Int32/256-16 0.00 0.00 ~ (all equal) 952 MapGetMiss/Int32/512-16 0.00 0.00 ~ (all equal) 953 MapGetMiss/Int32/1024-16 0.00 0.00 ~ (all equal) 954 MapGetMiss/Int32/2048-16 0.00 0.00 ~ (all equal) 955 MapGetMiss/Int32/4096-16 0.00 0.00 ~ (all equal) 956 MapGetMiss/Int32/8192-16 0.00 0.00 ~ (all equal) 957 MapGetMiss/Int32/32768-16 0.00 0.00 ~ (all equal) 958 MapGetMiss/Int32/65536-16 0.00 0.00 ~ (all equal) 959 MapGetMiss/Int32/131072-16 0.00 0.00 ~ (all equal) 960 MapGetMiss/Int32/262144-16 0.00 0.00 ~ (all equal) 961 MapGetMiss/Int32/524288-16 0.00 0.00 ~ (all equal) 962 MapGetMiss/Int32/1048576-16 0.00 0.00 ~ (all equal) 963 MapGetMiss/Int32/2097152-16 0.00 0.00 ~ (all equal) 964 MapGetMiss/Int32/4194304-16 0.00 0.00 ~ (all equal) 965 MapGetMiss/String/6-16 0.00 0.00 ~ (all equal) 966 MapGetMiss/String/12-16 0.00 0.00 ~ (all equal) 967 MapGetMiss/String/18-16 0.00 0.00 ~ (all equal) 968 MapGetMiss/String/24-16 0.00 0.00 ~ (all equal) 969 MapGetMiss/String/30-16 0.00 0.00 ~ (all equal) 970 MapGetMiss/String/64-16 0.00 0.00 ~ (all equal) 971 MapGetMiss/String/128-16 0.00 0.00 ~ (all equal) 972 MapGetMiss/String/256-16 0.00 0.00 ~ (all equal) 973 MapGetMiss/String/512-16 0.00 0.00 ~ (all equal) 974 MapGetMiss/String/1024-16 0.00 0.00 ~ (all equal) 975 MapGetMiss/String/2048-16 0.00 0.00 ~ (all equal) 976 MapGetMiss/String/4096-16 0.00 0.00 ~ (all equal) 977 MapGetMiss/String/8192-16 0.00 0.00 ~ (all equal) 978 MapGetMiss/String/32768-16 0.00 0.00 ~ (all equal) 979 MapGetMiss/String/65536-16 0.00 0.00 ~ (all equal) 980 MapGetMiss/String/131072-16 0.00 0.00 ~ (all equal) 981 MapGetMiss/String/262144-16 0.00 0.00 ~ (all equal) 982 MapGetMiss/String/524288-16 0.00 0.00 ~ (all equal) 983 MapGetMiss/String/1048576-16 0.00 0.00 ~ (all equal) 984 MapGetMiss/String/2097152-16 0.00 0.00 ~ (all equal) 985 MapGetMiss/String/4194304-16 0.00 0.00 ~ (all equal) 986 MapPutGrow/Int64/6-16 0.00 1.00 ± 0% +Inf% (p=0.000 n=10+10) 987 MapPutGrow/Int64/12-16 1.00 ± 0% 2.00 ± 0% +100.00% (p=0.000 n=10+10) 988 MapPutGrow/Int64/18-16 3.00 ± 0% 3.00 ± 0% ~ (all equal) 989 MapPutGrow/Int64/24-16 4.00 ± 0% 3.00 ± 0% -25.00% (p=0.000 n=10+10) 990 MapPutGrow/Int64/30-16 6.00 ± 0% 4.00 ± 0% -33.33% (p=0.000 n=10+10) 991 MapPutGrow/Int64/64-16 12.0 ± 0% 5.0 ± 0% -58.33% (p=0.000 n=10+10) 992 MapPutGrow/Int64/128-16 19.0 ± 0% 6.0 ± 0% -68.42% (p=0.000 n=10+10) 993 MapPutGrow/Int64/256-16 27.0 ± 0% 7.0 ± 0% -74.07% (p=0.000 n=10+10) 994 MapPutGrow/Int64/512-16 42.0 ± 0% 8.0 ± 0% -80.95% (p=0.000 n=10+10) 995 MapPutGrow/Int64/1024-16 64.0 ± 0% 9.0 ± 0% -85.94% (p=0.000 n=10+10) 996 MapPutGrow/Int64/2048-16 99.0 ± 0% 10.0 ± 0% -89.90% (p=0.002 n=8+10) 997 MapPutGrow/Int64/4096-16 161 ± 0% 12 ± 0% -92.57% (p=0.000 n=10+10) 998 MapPutGrow/Int64/8192-16 274 ± 0% 15 ± 0% -94.53% (p=0.000 n=7+10) 999 MapPutGrow/Int64/32768-16 1.13k ± 0% 0.03k ± 0% -97.43% (p=0.000 n=9+10) 1000 MapPutGrow/Int64/65536-16 2.35k ± 0% 0.05k ± 0% -98.04% (p=0.000 n=10+10) 1001 MapPutGrow/Int64/131072-16 4.76k ± 0% 0.08k ± 0% -98.34% (p=0.000 n=10+10) 1002 MapPutGrow/Int64/262144-16 9.58k ± 0% 0.14k ± 0% -98.50% (p=0.000 n=10+10) 1003 MapPutGrow/Int64/524288-16 19.2k ± 0% 0.3k ± 0% -98.58% (p=0.000 n=10+10) 1004 MapPutGrow/Int64/1048576-16 38.4k ± 0% 0.5k ± 0% -98.62% (p=0.000 n=10+10) 1005 MapPutGrow/Int64/2097152-16 76.8k ± 0% 1.0k ± 0% -98.64% (p=0.000 n=10+10) 1006 MapPutGrow/Int64/4194304-16 154k ± 0% 2k ± 0% -98.65% (p=0.000 n=10+10) 1007 MapPutGrow/Int32/6-16 0.00 1.00 ± 0% +Inf% (p=0.000 n=10+10) 1008 MapPutGrow/Int32/12-16 1.00 ± 0% 2.00 ± 0% +100.00% (p=0.000 n=10+10) 1009 MapPutGrow/Int32/18-16 3.00 ± 0% 3.00 ± 0% ~ (all equal) 1010 MapPutGrow/Int32/24-16 4.00 ± 0% 3.00 ± 0% -25.00% (p=0.000 n=10+10) 1011 MapPutGrow/Int32/30-16 6.00 ± 0% 4.00 ± 0% -33.33% (p=0.000 n=10+10) 1012 MapPutGrow/Int32/64-16 12.0 ± 0% 5.0 ± 0% -58.33% (p=0.000 n=10+10) 1013 MapPutGrow/Int32/128-16 20.0 ± 0% 6.0 ± 0% -70.00% (p=0.000 n=10+10) 1014 MapPutGrow/Int32/256-16 28.0 ± 0% 7.0 ± 0% -75.00% (p=0.000 n=10+10) 1015 MapPutGrow/Int32/512-16 37.3 ± 2% 8.0 ± 0% -78.55% (p=0.000 n=10+10) 1016 MapPutGrow/Int32/1024-16 65.0 ± 0% 9.0 ± 0% -86.15% (p=0.002 n=8+10) 1017 MapPutGrow/Int32/2048-16 113 ± 0% 10 ± 0% -91.15% (p=0.000 n=10+10) 1018 MapPutGrow/Int32/4096-16 130 ± 0% 12 ± 0% -90.77% (p=0.000 n=9+10) 1019 MapPutGrow/Int32/8192-16 254 ± 0% 15 ± 0% -94.08% (p=0.000 n=10+10) 1020 MapPutGrow/Int32/32768-16 1.05k ± 0% 0.03k ± 0% -97.24% (p=0.000 n=10+10) 1021 MapPutGrow/Int32/65536-16 2.27k ± 0% 0.05k ± 0% -97.97% (p=0.000 n=10+10) 1022 MapPutGrow/Int32/131072-16 4.68k ± 0% 0.08k ± 0% -98.31% (p=0.000 n=10+10) 1023 MapPutGrow/Int32/262144-16 9.50k ± 0% 0.14k ± 0% -98.48% (p=0.000 n=10+10) 1024 MapPutGrow/Int32/524288-16 19.1k ± 0% 0.3k ± 0% -98.57% (p=0.000 n=10+10) 1025 MapPutGrow/Int32/1048576-16 38.3k ± 0% 0.5k ± 0% -98.62% (p=0.000 n=9+10) 1026 MapPutGrow/Int32/2097152-16 76.8k ± 0% 1.0k ± 0% -98.64% (p=0.000 n=9+10) 1027 MapPutGrow/Int32/4194304-16 154k ± 0% 2k ± 0% -98.65% (p=0.000 n=9+10) 1028 MapPutGrow/String/6-16 0.00 1.00 ± 0% +Inf% (p=0.000 n=10+10) 1029 MapPutGrow/String/12-16 1.00 ± 0% 2.00 ± 0% +100.00% (p=0.000 n=10+10) 1030 MapPutGrow/String/18-16 2.00 ± 0% 3.00 ± 0% +50.00% (p=0.000 n=10+10) 1031 MapPutGrow/String/24-16 2.00 ± 0% 3.00 ± 0% +50.00% (p=0.000 n=10+10) 1032 MapPutGrow/String/30-16 4.00 ± 0% 4.00 ± 0% ~ (all equal) 1033 MapPutGrow/String/64-16 7.00 ± 0% 5.00 ± 0% -28.57% (p=0.000 n=10+10) 1034 MapPutGrow/String/128-16 10.0 ± 0% 6.0 ± 0% -40.00% (p=0.000 n=10+10) 1035 MapPutGrow/String/256-16 16.0 ± 0% 7.0 ± 0% -56.25% (p=0.000 n=10+10) 1036 MapPutGrow/String/512-16 24.0 ± 0% 8.0 ± 0% -66.67% (p=0.000 n=10+10) 1037 MapPutGrow/String/1024-16 30.0 ± 0% 9.0 ± 0% -70.00% (p=0.000 n=10+10) 1038 MapPutGrow/String/2048-16 39.0 ± 0% 10.0 ± 0% -74.36% (p=0.000 n=9+10) 1039 MapPutGrow/String/4096-16 87.0 ± 0% 12.0 ± 0% -86.21% (p=0.000 n=9+10) 1040 MapPutGrow/String/8192-16 212 ± 0% 15 ± 0% -92.92% (p=0.002 n=8+10) 1041 MapPutGrow/String/32768-16 1.08k ± 0% 0.03k ± 0% -97.30% (p=0.000 n=10+10) 1042 MapPutGrow/String/65536-16 2.28k ± 0% 0.05k ± 0% -97.98% (p=0.000 n=10+10) 1043 MapPutGrow/String/131072-16 4.68k ± 0% 0.08k ± 0% -98.31% (p=0.000 n=10+10) 1044 MapPutGrow/String/262144-16 9.47k ± 0% 0.14k ± 0% -98.48% (p=0.000 n=10+10) 1045 MapPutGrow/String/524288-16 19.1k ± 0% 0.3k ± 0% -98.57% (p=0.000 n=10+10) 1046 MapPutGrow/String/1048576-16 38.3k ± 0% 0.5k ± 0% -98.62% (p=0.000 n=10+10) 1047 MapPutGrow/String/2097152-16 76.7k ± 0% 1.0k ± 0% -98.64% (p=0.000 n=10+10) 1048 MapPutGrow/String/4194304-16 153k ± 1% 2k ± 0% -98.65% (p=0.000 n=10+10) 1049 MapPutPreAllocate/Int64/6-16 0.00 1.00 ± 0% +Inf% (p=0.000 n=10+10) 1050 MapPutPreAllocate/Int64/12-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1051 MapPutPreAllocate/Int64/18-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1052 MapPutPreAllocate/Int64/24-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1053 MapPutPreAllocate/Int64/30-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1054 MapPutPreAllocate/Int64/64-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1055 MapPutPreAllocate/Int64/128-16 3.00 ± 0% 1.00 ± 0% -66.67% (p=0.000 n=10+10) 1056 MapPutPreAllocate/Int64/256-16 4.00 ± 0% 1.00 ± 0% -75.00% (p=0.000 n=10+10) 1057 MapPutPreAllocate/Int64/512-16 5.00 ± 0% 1.00 ± 0% -80.00% (p=0.000 n=10+10) 1058 MapPutPreAllocate/Int64/1024-16 6.00 ± 0% 1.00 ± 0% -83.33% (p=0.000 n=10+10) 1059 MapPutPreAllocate/Int64/2048-16 7.00 ± 0% 1.00 ± 0% -85.71% (p=0.000 n=10+10) 1060 MapPutPreAllocate/Int64/4096-16 8.00 ± 0% 3.00 ± 0% -62.50% (p=0.000 n=10+10) 1061 MapPutPreAllocate/Int64/8192-16 9.00 ± 0% 5.00 ± 0% -44.44% (p=0.000 n=10+10) 1062 MapPutPreAllocate/Int64/32768-16 12.0 ± 0% 17.0 ± 0% +41.67% (p=0.000 n=10+10) 1063 MapPutPreAllocate/Int64/65536-16 13.0 ± 0% 33.0 ± 0% +153.85% (p=0.000 n=10+10) 1064 MapPutPreAllocate/Int64/131072-16 14.0 ± 0% 65.0 ± 0% +364.29% (p=0.000 n=10+10) 1065 MapPutPreAllocate/Int64/262144-16 15.0 ± 0% 129.0 ± 0% +760.00% (p=0.000 n=10+10) 1066 MapPutPreAllocate/Int64/524288-16 17.0 ± 0% 257.0 ± 0% +1411.76% (p=0.000 n=10+10) 1067 MapPutPreAllocate/Int64/1048576-16 19.0 ± 0% 513.0 ± 0% +2600.00% (p=0.000 n=10+10) 1068 MapPutPreAllocate/Int64/2097152-16 21.0 ± 0% 1025.0 ± 0% +4780.95% (p=0.000 n=10+10) 1069 MapPutPreAllocate/Int64/4194304-16 24.0 ± 0% 2049.0 ± 0% +8437.50% (p=0.000 n=10+10) 1070 MapPutPreAllocate/Int32/6-16 0.00 1.00 ± 0% +Inf% (p=0.000 n=10+10) 1071 MapPutPreAllocate/Int32/12-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1072 MapPutPreAllocate/Int32/18-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1073 MapPutPreAllocate/Int32/24-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1074 MapPutPreAllocate/Int32/30-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1075 MapPutPreAllocate/Int32/64-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1076 MapPutPreAllocate/Int32/128-16 3.00 ± 0% 1.00 ± 0% -66.67% (p=0.000 n=10+10) 1077 MapPutPreAllocate/Int32/256-16 4.00 ± 0% 1.00 ± 0% -75.00% (p=0.000 n=10+10) 1078 MapPutPreAllocate/Int32/512-16 5.00 ± 0% 1.00 ± 0% -80.00% (p=0.000 n=10+10) 1079 MapPutPreAllocate/Int32/1024-16 6.00 ± 0% 1.00 ± 0% -83.33% (p=0.000 n=10+10) 1080 MapPutPreAllocate/Int32/2048-16 7.00 ± 0% 1.00 ± 0% -85.71% (p=0.000 n=10+10) 1081 MapPutPreAllocate/Int32/4096-16 8.00 ± 0% 3.00 ± 0% -62.50% (p=0.000 n=10+10) 1082 MapPutPreAllocate/Int32/8192-16 9.00 ± 0% 5.00 ± 0% -44.44% (p=0.000 n=10+10) 1083 MapPutPreAllocate/Int32/32768-16 12.0 ± 0% 17.0 ± 0% +41.67% (p=0.000 n=10+10) 1084 MapPutPreAllocate/Int32/65536-16 13.0 ± 0% 33.0 ± 0% +153.85% (p=0.000 n=10+10) 1085 MapPutPreAllocate/Int32/131072-16 14.0 ± 0% 65.0 ± 0% +364.29% (p=0.000 n=10+10) 1086 MapPutPreAllocate/Int32/262144-16 15.0 ± 0% 129.0 ± 0% +760.00% (p=0.000 n=10+10) 1087 MapPutPreAllocate/Int32/524288-16 17.0 ± 0% 257.0 ± 0% +1411.76% (p=0.000 n=10+10) 1088 MapPutPreAllocate/Int32/1048576-16 19.0 ± 0% 513.0 ± 0% +2600.00% (p=0.000 n=10+10) 1089 MapPutPreAllocate/Int32/2097152-16 21.0 ± 0% 1025.0 ± 0% +4780.95% (p=0.000 n=10+10) 1090 MapPutPreAllocate/Int32/4194304-16 24.0 ± 0% 2049.0 ± 0% +8437.50% (p=0.000 n=10+10) 1091 MapPutPreAllocate/String/6-16 0.00 1.00 ± 0% +Inf% (p=0.000 n=10+10) 1092 MapPutPreAllocate/String/12-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1093 MapPutPreAllocate/String/18-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1094 MapPutPreAllocate/String/24-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1095 MapPutPreAllocate/String/30-16 1.00 ± 0% 1.00 ± 0% ~ (all equal) 1096 MapPutPreAllocate/String/64-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1097 MapPutPreAllocate/String/128-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1098 MapPutPreAllocate/String/256-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1099 MapPutPreAllocate/String/512-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1100 MapPutPreAllocate/String/1024-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1101 MapPutPreAllocate/String/2048-16 2.00 ± 0% 1.00 ± 0% -50.00% (p=0.000 n=10+10) 1102 MapPutPreAllocate/String/4096-16 2.00 ± 0% 3.00 ± 0% +50.00% (p=0.000 n=10+10) 1103 MapPutPreAllocate/String/8192-16 2.00 ± 0% 5.00 ± 0% +150.00% (p=0.000 n=10+10) 1104 MapPutPreAllocate/String/32768-16 2.00 ± 0% 17.00 ± 0% +750.00% (p=0.000 n=10+10) 1105 MapPutPreAllocate/String/65536-16 2.00 ± 0% 33.00 ± 0% +1550.00% (p=0.000 n=10+10) 1106 MapPutPreAllocate/String/131072-16 2.00 ± 0% 65.00 ± 0% +3150.00% (p=0.000 n=10+10) 1107 MapPutPreAllocate/String/262144-16 2.00 ± 0% 129.00 ± 0% +6350.00% (p=0.000 n=10+10) 1108 MapPutPreAllocate/String/524288-16 2.00 ± 0% 257.00 ± 0% +12750.00% (p=0.000 n=10+10) 1109 MapPutPreAllocate/String/1048576-16 2.00 ± 0% 513.00 ± 0% +25550.00% (p=0.000 n=10+10) 1110 MapPutPreAllocate/String/2097152-16 2.00 ± 0% 1025.00 ± 0% +51150.00% (p=0.000 n=10+10) 1111 MapPutPreAllocate/String/4194304-16 2.00 ± 0% 2049.00 ± 0% +102350.00% (p=0.000 n=10+10) 1112 MapPutReuse/Int64/6-16 0.00 0.00 ~ (all equal) 1113 MapPutReuse/Int64/12-16 0.00 0.00 ~ (all equal) 1114 MapPutReuse/Int64/18-16 0.00 0.00 ~ (all equal) 1115 MapPutReuse/Int64/24-16 1.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1116 MapPutReuse/Int64/30-16 0.00 0.00 ~ (all equal) 1117 MapPutReuse/Int64/64-16 0.00 0.00 ~ (all equal) 1118 MapPutReuse/Int64/128-16 1.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1119 MapPutReuse/Int64/256-16 2.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1120 MapPutReuse/Int64/512-16 3.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1121 MapPutReuse/Int64/1024-16 4.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1122 MapPutReuse/Int64/2048-16 5.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1123 MapPutReuse/Int64/4096-16 6.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1124 MapPutReuse/Int64/8192-16 7.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1125 MapPutReuse/Int64/32768-16 9.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1126 MapPutReuse/Int64/65536-16 11.0 ± 0% 0.0 -100.00% (p=0.000 n=9+10) 1127 MapPutReuse/Int64/131072-16 12.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1128 MapPutReuse/Int64/262144-16 13.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1129 MapPutReuse/Int64/524288-16 15.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1130 MapPutReuse/Int64/1048576-16 17.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1131 MapPutReuse/Int64/2097152-16 19.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1132 MapPutReuse/Int64/4194304-16 22.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1133 MapPutReuse/Int32/6-16 0.00 0.00 ~ (all equal) 1134 MapPutReuse/Int32/12-16 0.00 0.00 ~ (all equal) 1135 MapPutReuse/Int32/18-16 0.00 0.00 ~ (all equal) 1136 MapPutReuse/Int32/24-16 1.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1137 MapPutReuse/Int32/30-16 0.00 0.00 ~ (all equal) 1138 MapPutReuse/Int32/64-16 0.00 0.00 ~ (all equal) 1139 MapPutReuse/Int32/128-16 1.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1140 MapPutReuse/Int32/256-16 2.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1141 MapPutReuse/Int32/512-16 3.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1142 MapPutReuse/Int32/1024-16 4.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1143 MapPutReuse/Int32/2048-16 5.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1144 MapPutReuse/Int32/4096-16 6.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1145 MapPutReuse/Int32/8192-16 7.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10) 1146 MapPutReuse/Int32/32768-16 9.00 ± 0% 0.00 -100.00% (p=0.000 n=9+10) 1147 MapPutReuse/Int32/65536-16 11.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1148 MapPutReuse/Int32/131072-16 12.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1149 MapPutReuse/Int32/262144-16 13.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1150 MapPutReuse/Int32/524288-16 15.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1151 MapPutReuse/Int32/1048576-16 17.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1152 MapPutReuse/Int32/2097152-16 19.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1153 MapPutReuse/Int32/4194304-16 22.0 ± 0% 0.0 -100.00% (p=0.000 n=10+10) 1154 MapPutReuse/String/6-16 0.00 0.00 ~ (all equal) 1155 MapPutReuse/String/12-16 0.00 0.00 ~ (all equal) 1156 MapPutReuse/String/18-16 0.00 0.00 ~ (all equal) 1157 MapPutReuse/String/24-16 0.00 0.00 ~ (all equal) 1158 MapPutReuse/String/30-16 0.00 0.00 ~ (all equal) 1159 MapPutReuse/String/64-16 0.00 0.00 ~ (all equal) 1160 MapPutReuse/String/128-16 0.00 0.00 ~ (all equal) 1161 MapPutReuse/String/256-16 0.00 0.00 ~ (all equal) 1162 MapPutReuse/String/512-16 0.00 0.00 ~ (all equal) 1163 MapPutReuse/String/1024-16 0.00 0.00 ~ (all equal) 1164 MapPutReuse/String/2048-16 0.00 0.00 ~ (all equal) 1165 MapPutReuse/String/4096-16 0.00 0.00 ~ (all equal) 1166 MapPutReuse/String/8192-16 0.00 0.00 ~ (all equal) 1167 MapPutReuse/String/32768-16 0.00 0.00 ~ (all equal) 1168 MapPutReuse/String/65536-16 0.00 0.00 ~ (all equal) 1169 MapPutReuse/String/131072-16 0.00 0.00 ~ (all equal) 1170 MapPutReuse/String/262144-16 0.00 0.00 ~ (all equal) 1171 MapPutReuse/String/524288-16 0.00 0.00 ~ (all equal) 1172 MapPutReuse/String/1048576-16 0.00 0.00 ~ (all equal) 1173 MapPutReuse/String/2097152-16 0.00 0.00 ~ (all equal) 1174 MapPutReuse/String/4194304-16 0.00 0.00 ~ (all equal) 1175 MapPutDelete/Int64/6-16 0.00 0.00 ~ (all equal) 1176 MapPutDelete/Int64/12-16 0.00 0.00 ~ (all equal) 1177 MapPutDelete/Int64/18-16 0.00 0.00 ~ (all equal) 1178 MapPutDelete/Int64/24-16 0.00 0.00 ~ (all equal) 1179 MapPutDelete/Int64/30-16 0.00 0.00 ~ (all equal) 1180 MapPutDelete/Int64/64-16 0.00 0.00 ~ (all equal) 1181 MapPutDelete/Int64/128-16 0.00 0.00 ~ (all equal) 1182 MapPutDelete/Int64/256-16 0.00 0.00 ~ (all equal) 1183 MapPutDelete/Int64/512-16 0.00 0.00 ~ (all equal) 1184 MapPutDelete/Int64/1024-16 0.00 0.00 ~ (all equal) 1185 MapPutDelete/Int64/2048-16 0.00 0.00 ~ (all equal) 1186 MapPutDelete/Int64/4096-16 0.00 0.00 ~ (all equal) 1187 MapPutDelete/Int64/8192-16 0.00 0.00 ~ (all equal) 1188 MapPutDelete/Int64/32768-16 0.00 0.00 ~ (all equal) 1189 MapPutDelete/Int64/65536-16 0.00 0.00 ~ (all equal) 1190 MapPutDelete/Int64/131072-16 0.00 0.00 ~ (all equal) 1191 MapPutDelete/Int64/262144-16 0.00 0.00 ~ (all equal) 1192 MapPutDelete/Int64/524288-16 0.00 0.00 ~ (all equal) 1193 MapPutDelete/Int64/1048576-16 0.00 0.00 ~ (all equal) 1194 MapPutDelete/Int64/2097152-16 0.00 0.00 ~ (all equal) 1195 MapPutDelete/Int64/4194304-16 0.00 0.00 ~ (all equal) 1196 MapPutDelete/Int32/6-16 0.00 0.00 ~ (all equal) 1197 MapPutDelete/Int32/12-16 0.00 0.00 ~ (all equal) 1198 MapPutDelete/Int32/18-16 0.00 0.00 ~ (all equal) 1199 MapPutDelete/Int32/24-16 0.00 0.00 ~ (all equal) 1200 MapPutDelete/Int32/30-16 0.00 0.00 ~ (all equal) 1201 MapPutDelete/Int32/64-16 0.00 0.00 ~ (all equal) 1202 MapPutDelete/Int32/128-16 0.00 0.00 ~ (all equal) 1203 MapPutDelete/Int32/256-16 0.00 0.00 ~ (all equal) 1204 MapPutDelete/Int32/512-16 0.00 0.00 ~ (all equal) 1205 MapPutDelete/Int32/1024-16 0.00 0.00 ~ (all equal) 1206 MapPutDelete/Int32/2048-16 0.00 0.00 ~ (all equal) 1207 MapPutDelete/Int32/4096-16 0.00 0.00 ~ (all equal) 1208 MapPutDelete/Int32/8192-16 0.00 0.00 ~ (all equal) 1209 MapPutDelete/Int32/32768-16 0.00 0.00 ~ (all equal) 1210 MapPutDelete/Int32/65536-16 0.00 0.00 ~ (all equal) 1211 MapPutDelete/Int32/131072-16 0.00 0.00 ~ (all equal) 1212 MapPutDelete/Int32/262144-16 0.00 0.00 ~ (all equal) 1213 MapPutDelete/Int32/524288-16 0.00 0.00 ~ (all equal) 1214 MapPutDelete/Int32/1048576-16 0.00 0.00 ~ (all equal) 1215 MapPutDelete/Int32/2097152-16 0.00 0.00 ~ (all equal) 1216 MapPutDelete/Int32/4194304-16 0.00 0.00 ~ (all equal) 1217 MapPutDelete/String/6-16 0.00 0.00 ~ (all equal) 1218 MapPutDelete/String/12-16 0.00 0.00 ~ (all equal) 1219 MapPutDelete/String/18-16 0.00 0.00 ~ (all equal) 1220 MapPutDelete/String/24-16 0.00 0.00 ~ (all equal) 1221 MapPutDelete/String/30-16 0.00 0.00 ~ (all equal) 1222 MapPutDelete/String/64-16 0.00 0.00 ~ (all equal) 1223 MapPutDelete/String/128-16 0.00 0.00 ~ (all equal) 1224 MapPutDelete/String/256-16 0.00 0.00 ~ (all equal) 1225 MapPutDelete/String/512-16 0.00 0.00 ~ (all equal) 1226 MapPutDelete/String/1024-16 0.00 0.00 ~ (all equal) 1227 MapPutDelete/String/2048-16 0.00 0.00 ~ (all equal) 1228 MapPutDelete/String/4096-16 0.00 0.00 ~ (all equal) 1229 MapPutDelete/String/8192-16 0.00 0.00 ~ (all equal) 1230 MapPutDelete/String/32768-16 0.00 0.00 ~ (all equal) 1231 MapPutDelete/String/65536-16 0.00 0.00 ~ (all equal) 1232 MapPutDelete/String/131072-16 0.00 0.00 ~ (all equal) 1233 MapPutDelete/String/262144-16 0.00 0.00 ~ (all equal) 1234 MapPutDelete/String/524288-16 0.00 0.00 ~ (all equal) 1235 MapPutDelete/String/1048576-16 0.00 0.00 ~ (all equal) 1236 MapPutDelete/String/2097152-16 0.00 0.00 ~ (all equal) 1237 MapPutDelete/String/4194304-16 0.00 0.00 ~ (all equal) 1238 ``` 1239 </details> 1240 1241 On top of the base Swiss Tables design, `swiss.Map` adds an [extendible 1242 hashing](https://en.wikipedia.org/wiki/Extendible_hashing) layer in order to 1243 enable incremental resizing of large maps which significantly reduces tail 1244 latency for `Put` operations in maps with hundreds of thousands of entries or 1245 more. 1246 1247 `swiss.Map` provides pseudo-randomized iteration (iteration order will change 1248 from one iteration to the next) and iteration stability akin to Go's builtin 1249 map if the map is mutated during iteration. 1250 1251 ## Caveats 1252 1253 - The implementation currently requires a little endian CPU architecture. This 1254 is not a fundamental limitation of the implementation, merely a choice of 1255 expediency. 1256 - Go's builtin map has a fast-path for comparing strings that [share their 1257 underlying 1258 storage](https://github.com/golang/go/blob/4a7f3ac8eb4381ea62caa1741eeeec28363245b4/src/runtime/map_faststr.go#L100). 1259 This fast-path is feasible because `map[string]T` is specialized for string 1260 keys which isn't currently possible with Go's generics. 1261 - Go's builtin map has a fast-path for maps with int32, int64, and string keys 1262 that fit in a single bucket (8 entries) which avoids performing `hash(key)` 1263 and simply linearly searches through the bucket. Similar to the above, this 1264 fast-path is feasible because the runtime can specialize the implementation 1265 on the key type. 1266 1267 ## TODO 1268 1269 - Add support for SIMD searching on x86 and [8-byte Neon SIMD searching on 1270 arm64](https://github.com/abseil/abseil-cpp/commit/6481443560a92d0a3a55a31807de0cd712cd4f88) 1271 - This appears to be somewhat difficult. Naively implementing the match 1272 routines in assembly isn't workable as the function call overhead 1273 dominates the performance improvement from the SIMD comparisons. The 1274 Abseil implementation is leveraring gcc/llvm assembly intrinsics which are 1275 not currently available in Go. In order to take advantage of SIMD we'll 1276 have to write most/all of the probing loop in assembly.