Skip to content

cockroachdb/swiss

Repository files navigation

Swiss Map Build Status GoDoc

swiss.Map is a Go implementation of Google's Swiss Tables hash table design. The Rust version of Swiss Tables is now the HashMap implementation in the Rust standard library.

A swiss.Map[K,V] maps keys of type K to values of type V, similar to Go's builtin map[K]V type. The primary advantage of swiss.Map over Go's builtin map is performance. swiss.Map has similar or slightly better performance than Go's builtin map for small map sizes, and significantly better performance at large map sizes. The benchmarks where swiss.Map performs worse are due to a fast-path optimization in Go's builtin maps for tiny (6 or fewer element) maps with int32, int64, or string keys, and when growing a tiny map no initial capacity specified. In the latter case, Go's builtin map is sometimes able to place the map and first bucket on the stack avoiding heap allocations entirely.

Performance: Go's builtin map (old) vs swiss.Map (new)

Tested on a GCE n1-standard-16 instance.

goos: linux
goarch: amd64
pkg: github.com/cockroachdb/swiss
cpu: Intel(R) Xeon(R) CPU @ 2.60GHz

name                                 old time/op    new time/op    delta
MapIter/Int/6-16                       72.9ns ± 1%    38.3ns ± 1%      -47.53%  (p=0.000 n=10+10)
MapIter/Int/12-16                       123ns ± 1%      56ns ± 2%      -54.72%  (p=0.000 n=9+10)
MapIter/Int/18-16                       191ns ± 5%      80ns ± 1%      -58.11%  (p=0.000 n=10+9)
MapIter/Int/24-16                       229ns ± 4%      89ns ± 1%      -61.41%  (p=0.000 n=10+10)
MapIter/Int/30-16                       300ns ± 2%     125ns ± 2%      -58.47%  (p=0.000 n=9+10)
MapIter/Int/64-16                       588ns ± 3%     233ns ± 1%      -60.33%  (p=0.000 n=10+10)
MapIter/Int/128-16                     1.14µs ± 4%    0.45µs ± 1%      -60.73%  (p=0.000 n=10+10)
MapIter/Int/256-16                     2.38µs ± 2%    0.86µs ± 0%      -63.89%  (p=0.000 n=10+10)
MapIter/Int/512-16                     5.13µs ± 2%    1.70µs ± 0%      -66.89%  (p=0.000 n=10+10)
MapIter/Int/1024-16                    11.0µs ± 2%     4.0µs ± 3%      -63.31%  (p=0.000 n=10+10)
MapIter/Int/2048-16                    22.6µs ± 2%    10.7µs ± 1%      -52.70%  (p=0.000 n=10+9)
MapIter/Int/4096-16                    45.8µs ± 2%    23.6µs ± 0%      -48.52%  (p=0.000 n=10+10)
MapIter/Int/8192-16                    91.4µs ± 0%    48.7µs ± 0%      -46.67%  (p=0.000 n=8+9)
MapIter/Int/32768-16                    367µs ± 1%     198µs ± 0%      -46.03%  (p=0.000 n=10+10)
MapIter/Int/65536-16                    735µs ± 1%     397µs ± 0%      -46.03%  (p=0.000 n=10+10)
MapIter/Int/131072-16                  1.47ms ± 1%    0.79ms ± 0%      -46.01%  (p=0.000 n=9+10)
MapIter/Int/262144-16                  2.96ms ± 2%    1.60ms ± 0%      -46.04%  (p=0.000 n=10+10)
MapIter/Int/524288-16                  6.07ms ± 2%    3.23ms ± 0%      -46.82%  (p=0.000 n=10+10)
MapIter/Int/1048576-16                 12.3ms ± 2%     6.9ms ± 1%      -44.18%  (p=0.000 n=10+10)
MapIter/Int/2097152-16                 24.9ms ± 1%    14.5ms ± 1%      -41.78%  (p=0.000 n=10+10)
MapIter/Int/4194304-16                 50.5ms ± 1%    29.2ms ± 1%      -42.14%  (p=0.000 n=10+10)
MapGetHit/Int64/6-16                   4.93ns ± 0%    6.62ns ±15%      +34.14%  (p=0.000 n=10+10)
MapGetHit/Int64/12-16                  7.29ns ± 1%    6.35ns ± 0%      -12.89%  (p=0.000 n=8+8)
MapGetHit/Int64/18-16                  7.57ns ±18%    6.56ns ± 9%      -13.30%  (p=0.001 n=10+10)
MapGetHit/Int64/24-16                  7.54ns ± 5%    6.67ns ± 7%      -11.56%  (p=0.000 n=10+9)
MapGetHit/Int64/30-16                  7.01ns ± 2%    6.35ns ± 0%       -9.46%  (p=0.000 n=10+8)
MapGetHit/Int64/64-16                  7.09ns ± 1%    6.72ns ±10%       -5.23%  (p=0.001 n=10+10)
MapGetHit/Int64/128-16                 7.13ns ± 2%    6.73ns ± 3%       -5.62%  (p=0.000 n=10+10)
MapGetHit/Int64/256-16                 7.14ns ± 1%    6.72ns ± 3%       -5.96%  (p=0.000 n=10+10)
MapGetHit/Int64/512-16                 7.20ns ± 1%    6.76ns ± 1%       -6.15%  (p=0.000 n=10+9)
MapGetHit/Int64/1024-16                7.44ns ± 1%    6.81ns ± 1%       -8.41%  (p=0.000 n=10+8)
MapGetHit/Int64/2048-16                10.2ns ± 4%     7.1ns ± 1%      -29.79%  (p=0.000 n=10+10)
MapGetHit/Int64/4096-16                16.4ns ± 2%     8.6ns ± 1%      -47.76%  (p=0.000 n=10+10)
MapGetHit/Int64/8192-16                19.6ns ± 2%     8.9ns ± 1%      -54.48%  (p=0.000 n=10+10)
MapGetHit/Int64/32768-16               23.0ns ± 1%     9.9ns ± 1%      -57.18%  (p=0.000 n=10+10)
MapGetHit/Int64/65536-16               26.0ns ± 1%    14.1ns ± 3%      -45.65%  (p=0.000 n=10+10)
MapGetHit/Int64/131072-16              27.1ns ± 1%    16.1ns ± 4%      -40.67%  (p=0.000 n=10+10)
MapGetHit/Int64/262144-16              29.9ns ± 3%    17.7ns ± 4%      -40.85%  (p=0.000 n=10+10)
MapGetHit/Int64/524288-16              33.5ns ± 5%    20.1ns ± 2%      -39.88%  (p=0.000 n=10+7)
MapGetHit/Int64/1048576-16             45.3ns ±10%    30.8ns ± 9%      -32.00%  (p=0.000 n=10+10)
MapGetHit/Int64/2097152-16             55.4ns ± 2%    47.0ns ± 3%      -15.07%  (p=0.000 n=10+10)
MapGetHit/Int64/4194304-16             58.7ns ± 2%    55.0ns ± 2%       -6.34%  (p=0.000 n=9+10)
MapGetHit/Int32/6-16                   5.04ns ± 0%    6.40ns ± 0%      +27.16%  (p=0.000 n=10+9)
MapGetHit/Int32/12-16                  7.71ns ±11%    6.53ns ± 3%      -15.29%  (p=0.000 n=10+9)
MapGetHit/Int32/18-16                  8.04ns ± 8%    6.41ns ± 0%      -20.29%  (p=0.000 n=8+8)
MapGetHit/Int32/24-16                  7.93ns ±10%    6.61ns ± 6%      -16.71%  (p=0.000 n=10+10)
MapGetHit/Int32/30-16                  7.00ns ± 4%    6.74ns ±13%         ~     (p=0.165 n=10+10)
MapGetHit/Int32/64-16                  7.05ns ± 0%    6.75ns ± 2%       -4.20%  (p=0.000 n=8+8)
MapGetHit/Int32/128-16                 7.08ns ± 1%    6.94ns ± 5%       -2.06%  (p=0.028 n=9+10)
MapGetHit/Int32/256-16                 7.11ns ± 1%    6.76ns ± 4%       -4.90%  (p=0.000 n=10+10)
MapGetHit/Int32/512-16                 7.22ns ± 1%    6.79ns ± 4%       -5.99%  (p=0.000 n=10+10)
MapGetHit/Int32/1024-16                7.31ns ± 0%    6.72ns ± 1%       -8.14%  (p=0.000 n=8+10)
MapGetHit/Int32/2048-16                8.91ns ± 6%    6.76ns ± 1%      -24.15%  (p=0.000 n=10+10)
MapGetHit/Int32/4096-16                16.3ns ± 1%     8.1ns ± 1%      -50.37%  (p=0.000 n=9+10)
MapGetHit/Int32/8192-16                19.1ns ± 1%     8.4ns ± 1%      -55.92%  (p=0.000 n=10+10)
MapGetHit/Int32/32768-16               22.0ns ± 1%     8.9ns ± 0%      -59.57%  (p=0.000 n=10+8)
MapGetHit/Int32/65536-16               24.0ns ± 0%    10.2ns ± 1%      -57.39%  (p=0.000 n=9+8)
MapGetHit/Int32/131072-16              26.2ns ± 1%    13.5ns ± 4%      -48.57%  (p=0.000 n=10+10)
MapGetHit/Int32/262144-16              27.1ns ± 1%    15.2ns ± 3%      -43.76%  (p=0.000 n=10+10)
MapGetHit/Int32/524288-16              30.2ns ± 4%    16.4ns ± 3%      -45.49%  (p=0.000 n=9+10)
MapGetHit/Int32/1048576-16             34.3ns ±10%    19.4ns ± 3%      -43.58%  (p=0.000 n=9+10)
MapGetHit/Int32/2097152-16             44.4ns ±11%    29.5ns ± 5%      -33.50%  (p=0.000 n=10+10)
MapGetHit/Int32/4194304-16             52.8ns ± 3%    42.7ns ± 2%      -19.13%  (p=0.000 n=9+10)
MapGetHit/String/6-16                  12.9ns ± 1%     9.7ns ±23%      -24.32%  (p=0.000 n=10+10)
MapGetHit/String/12-16                 9.52ns ± 7%    9.52ns ± 7%         ~     (p=0.930 n=10+10)
MapGetHit/String/18-16                 10.4ns ± 5%     9.5ns ± 1%       -8.91%  (p=0.000 n=9+9)
MapGetHit/String/24-16                 9.67ns ± 9%   10.95ns ± 5%      +13.17%  (p=0.000 n=10+8)
MapGetHit/String/30-16                 8.74ns ± 3%    9.48ns ± 1%       +8.49%  (p=0.000 n=10+8)
MapGetHit/String/64-16                 8.94ns ± 2%   10.02ns ± 4%      +12.02%  (p=0.000 n=10+10)
MapGetHit/String/128-16                9.47ns ± 2%   10.02ns ± 4%       +5.82%  (p=0.000 n=10+10)
MapGetHit/String/256-16                10.3ns ± 2%    10.0ns ± 4%       -3.33%  (p=0.000 n=10+10)
MapGetHit/String/512-16                10.9ns ± 2%    10.0ns ± 4%       -7.78%  (p=0.000 n=10+10)
MapGetHit/String/1024-16               11.3ns ± 2%    10.5ns ± 5%       -7.45%  (p=0.000 n=9+10)
MapGetHit/String/2048-16               15.7ns ± 6%    10.8ns ± 1%      -31.48%  (p=0.000 n=10+10)
MapGetHit/String/4096-16               27.2ns ± 2%    12.6ns ± 1%      -53.77%  (p=0.000 n=10+10)
MapGetHit/String/8192-16               30.1ns ± 1%    13.1ns ± 1%      -56.64%  (p=0.000 n=10+10)
MapGetHit/String/32768-16              37.3ns ± 1%    19.3ns ± 2%      -48.32%  (p=0.000 n=10+9)
MapGetHit/String/65536-16              39.0ns ± 1%    22.1ns ± 4%      -43.25%  (p=0.000 n=9+10)
MapGetHit/String/131072-16             40.7ns ± 4%    25.0ns ± 3%      -38.72%  (p=0.000 n=10+10)
MapGetHit/String/262144-16             52.7ns ± 7%    28.5ns ± 4%      -45.97%  (p=0.000 n=10+10)
MapGetHit/String/524288-16             68.5ns ±10%    40.4ns ± 3%      -41.06%  (p=0.000 n=10+8)
MapGetHit/String/1048576-16            76.8ns ± 4%    64.1ns ± 7%      -16.46%  (p=0.000 n=10+10)
MapGetHit/String/2097152-16            86.5ns ± 2%    78.7ns ± 1%       -9.00%  (p=0.000 n=10+9)
MapGetHit/String/4194304-16            94.4ns ± 5%    86.7ns ± 1%       -8.23%  (p=0.000 n=10+10)
MapGetMiss/Int64/6-16                  7.16ns ± 0%    7.49ns ± 0%       +4.62%  (p=0.000 n=10+8)
MapGetMiss/Int64/12-16                 11.1ns ±37%     8.9ns ±17%      -19.60%  (p=0.000 n=10+10)
MapGetMiss/Int64/18-16                 10.0ns ± 0%     8.2ns ±18%      -17.55%  (p=0.000 n=8+10)
MapGetMiss/Int64/24-16                 11.5ns ±14%     9.7ns ±16%      -15.75%  (p=0.002 n=10+10)
MapGetMiss/Int64/30-16                 9.94ns ± 0%    7.88ns ± 5%      -20.79%  (p=0.000 n=9+10)
MapGetMiss/Int64/64-16                 11.4ns ±16%     8.2ns ± 4%      -28.39%  (p=0.000 n=10+10)
MapGetMiss/Int64/128-16                10.5ns ± 8%     8.4ns ± 4%      -19.95%  (p=0.000 n=10+10)
MapGetMiss/Int64/256-16                10.5ns ± 5%     8.5ns ± 6%      -18.62%  (p=0.000 n=10+10)
MapGetMiss/Int64/512-16                10.3ns ± 2%     8.6ns ± 5%      -16.34%  (p=0.000 n=8+10)
MapGetMiss/Int64/1024-16               10.5ns ± 3%     8.7ns ± 2%      -17.18%  (p=0.000 n=10+10)
MapGetMiss/Int64/2048-16               10.9ns ± 2%     8.9ns ± 2%      -17.72%  (p=0.000 n=10+10)
MapGetMiss/Int64/4096-16               11.1ns ± 1%    10.5ns ± 2%       -5.45%  (p=0.000 n=8+10)
MapGetMiss/Int64/8192-16               11.7ns ± 2%    10.9ns ± 1%       -6.53%  (p=0.000 n=10+10)
MapGetMiss/Int64/32768-16              14.0ns ± 1%    11.6ns ± 1%      -17.32%  (p=0.000 n=10+10)
MapGetMiss/Int64/65536-16              17.2ns ± 1%    12.6ns ± 1%      -26.46%  (p=0.000 n=9+10)
MapGetMiss/Int64/131072-16             18.4ns ± 3%    14.5ns ± 2%      -21.17%  (p=0.000 n=10+10)
MapGetMiss/Int64/262144-16             20.1ns ± 2%    16.1ns ± 3%      -19.93%  (p=0.000 n=8+10)
MapGetMiss/Int64/524288-16             42.3ns ±28%    18.0ns ± 3%      -57.35%  (p=0.000 n=10+10)
MapGetMiss/Int64/1048576-16            53.3ns ± 7%    21.7ns ± 5%      -59.34%  (p=0.000 n=8+10)
MapGetMiss/Int64/2097152-16            58.5ns ± 4%    32.9ns ± 5%      -43.80%  (p=0.000 n=10+10)
MapGetMiss/Int64/4194304-16            63.2ns ± 7%    43.5ns ± 3%      -31.16%  (p=0.000 n=9+10)
MapGetMiss/Int32/6-16                  8.92ns ± 0%    7.19ns ± 0%      -19.45%  (p=0.000 n=10+8)
MapGetMiss/Int32/12-16                 11.0ns ± 0%     8.7ns ±18%      -20.45%  (p=0.000 n=9+10)
MapGetMiss/Int32/18-16                 11.0ns ± 0%     7.6ns ±10%      -31.26%  (p=0.000 n=9+10)
MapGetMiss/Int32/24-16                 12.5ns ±15%     9.1ns ±22%      -27.69%  (p=0.000 n=10+10)
MapGetMiss/Int32/30-16                 11.0ns ± 0%     7.7ns ± 6%      -30.29%  (p=0.000 n=8+10)
MapGetMiss/Int32/64-16                 11.0ns ± 0%     7.8ns ± 7%      -28.75%  (p=0.000 n=9+9)
MapGetMiss/Int32/128-16                11.7ns ±13%     8.0ns ± 6%      -31.76%  (p=0.000 n=10+10)
MapGetMiss/Int32/256-16                11.5ns ± 4%     8.2ns ± 6%      -28.83%  (p=0.000 n=10+10)
MapGetMiss/Int32/512-16                11.4ns ± 6%     8.3ns ± 1%      -26.91%  (p=0.000 n=10+8)
MapGetMiss/Int32/1024-16               11.5ns ± 3%     8.4ns ± 3%      -26.83%  (p=0.000 n=10+10)
MapGetMiss/Int32/2048-16               11.5ns ± 2%     8.5ns ± 3%      -25.93%  (p=0.000 n=9+10)
MapGetMiss/Int32/4096-16               11.5ns ± 1%    10.1ns ± 2%      -12.27%  (p=0.000 n=10+10)
MapGetMiss/Int32/8192-16               11.6ns ± 2%    10.3ns ± 0%      -11.61%  (p=0.000 n=10+8)
MapGetMiss/Int32/32768-16              12.5ns ± 1%    11.0ns ± 1%      -11.58%  (p=0.000 n=10+10)
MapGetMiss/Int32/65536-16              14.2ns ± 2%    11.8ns ± 1%      -16.82%  (p=0.000 n=9+10)
MapGetMiss/Int32/131072-16             17.1ns ± 2%    14.3ns ± 2%      -16.72%  (p=0.000 n=10+10)
MapGetMiss/Int32/262144-16             18.1ns ± 3%    15.3ns ± 3%      -15.47%  (p=0.000 n=9+10)
MapGetMiss/Int32/524288-16             20.9ns ± 7%    16.8ns ± 2%      -19.84%  (p=0.000 n=10+10)
MapGetMiss/Int32/1048576-16            24.9ns ±16%    20.1ns ± 3%      -19.08%  (p=0.000 n=9+9)
MapGetMiss/Int32/2097152-16            38.6ns ±20%    32.3ns ± 9%      -16.22%  (p=0.003 n=10+10)
MapGetMiss/Int32/4194304-16            51.6ns ± 6%    42.9ns ± 3%      -16.85%  (p=0.000 n=10+10)
MapGetMiss/String/6-16                 7.79ns ± 0%    9.77ns ± 9%      +25.41%  (p=0.000 n=10+10)
MapGetMiss/String/12-16                13.5ns ±16%    11.1ns ±15%      -18.26%  (p=0.000 n=10+10)
MapGetMiss/String/18-16                13.6ns ± 9%    10.4ns ±10%      -23.75%  (p=0.000 n=10+10)
MapGetMiss/String/24-16                13.6ns ± 3%    11.7ns ±15%      -13.89%  (p=0.000 n=9+10)
MapGetMiss/String/30-16                13.3ns ± 6%    10.0ns ± 7%      -24.85%  (p=0.000 n=9+10)
MapGetMiss/String/64-16                13.1ns ± 4%    10.5ns ± 7%      -19.53%  (p=0.000 n=9+10)
MapGetMiss/String/128-16               12.7ns ± 1%    10.6ns ± 2%      -16.28%  (p=0.000 n=10+8)
MapGetMiss/String/256-16               13.1ns ± 4%    10.8ns ± 6%      -17.39%  (p=0.000 n=10+10)
MapGetMiss/String/512-16               13.3ns ± 4%    11.0ns ± 5%      -17.68%  (p=0.000 n=10+10)
MapGetMiss/String/1024-16              15.0ns ± 3%    11.0ns ± 3%      -26.65%  (p=0.000 n=10+9)
MapGetMiss/String/2048-16              18.2ns ± 4%    11.4ns ± 2%      -37.39%  (p=0.000 n=10+9)
MapGetMiss/String/4096-16              17.1ns ± 3%    13.1ns ± 3%      -23.30%  (p=0.000 n=10+10)
MapGetMiss/String/8192-16              17.1ns ± 1%    13.7ns ± 1%      -20.13%  (p=0.000 n=9+9)
MapGetMiss/String/32768-16             28.6ns ± 2%    14.9ns ± 3%      -47.98%  (p=0.000 n=10+10)
MapGetMiss/String/65536-16             25.4ns ± 2%    16.9ns ± 3%      -33.45%  (p=0.000 n=9+10)
MapGetMiss/String/131072-16            38.3ns ± 2%    19.6ns ± 2%      -48.72%  (p=0.000 n=9+10)
MapGetMiss/String/262144-16            40.7ns ± 8%    22.3ns ± 3%      -45.20%  (p=0.000 n=8+10)
MapGetMiss/String/524288-16            52.4ns ±20%    27.8ns ± 3%      -47.02%  (p=0.000 n=10+10)
MapGetMiss/String/1048576-16           65.7ns ± 7%    40.9ns ± 7%      -37.70%  (p=0.000 n=10+10)
MapGetMiss/String/2097152-16           80.8ns ± 3%    52.5ns ± 1%      -35.08%  (p=0.000 n=10+7)
MapGetMiss/String/4194304-16           78.9ns ± 2%    58.4ns ± 2%      -26.05%  (p=0.000 n=10+10)
MapPutGrow/Int64/6-16                  83.2ns ± 0%   154.0ns ± 0%      +85.04%  (p=0.000 n=9+9)
MapPutGrow/Int64/12-16                  408ns ± 0%     392ns ± 0%       -3.76%  (p=0.000 n=9+9)
MapPutGrow/Int64/18-16                  876ns ± 0%     749ns ± 0%      -14.49%  (p=0.000 n=10+9)
MapPutGrow/Int64/24-16                 1.10µs ± 0%    0.84µs ± 1%      -23.60%  (p=0.000 n=9+10)
MapPutGrow/Int64/30-16                 1.93µs ± 0%    1.47µs ± 0%      -24.04%  (p=0.000 n=10+10)
MapPutGrow/Int64/64-16                 4.37µs ± 0%    2.93µs ± 0%      -32.84%  (p=0.000 n=10+8)
MapPutGrow/Int64/128-16                8.82µs ± 0%    5.73µs ± 1%      -35.08%  (p=0.000 n=10+10)
MapPutGrow/Int64/256-16                17.3µs ± 0%    11.1µs ± 0%      -35.76%  (p=0.000 n=10+9)
MapPutGrow/Int64/512-16                34.1µs ± 0%    21.8µs ± 1%      -36.09%  (p=0.000 n=10+10)
MapPutGrow/Int64/1024-16               67.3µs ± 0%    44.0µs ± 1%      -34.71%  (p=0.000 n=10+10)
MapPutGrow/Int64/2048-16                134µs ± 0%      86µs ± 1%      -35.52%  (p=0.000 n=9+9)
MapPutGrow/Int64/4096-16                268µs ± 0%     210µs ± 0%      -21.76%  (p=0.000 n=10+10)
MapPutGrow/Int64/8192-16                540µs ± 0%     470µs ± 0%      -12.95%  (p=0.000 n=10+10)
MapPutGrow/Int64/32768-16              2.36ms ± 0%    2.09ms ± 0%      -11.33%  (p=0.000 n=10+10)
MapPutGrow/Int64/65536-16              4.87ms ± 1%    4.38ms ± 0%      -10.07%  (p=0.000 n=10+9)
MapPutGrow/Int64/131072-16             11.3ms ± 3%     9.4ms ± 1%      -16.77%  (p=0.000 n=10+10)
MapPutGrow/Int64/262144-16             26.4ms ± 2%    19.7ms ± 0%      -25.54%  (p=0.000 n=10+6)
MapPutGrow/Int64/524288-16             62.2ms ± 2%    42.8ms ± 1%      -31.10%  (p=0.000 n=10+10)
MapPutGrow/Int64/1048576-16             147ms ± 3%      92ms ± 1%      -37.53%  (p=0.000 n=9+10)
MapPutGrow/Int64/2097152-16             347ms ± 1%     208ms ± 1%      -40.02%  (p=0.000 n=10+8)
MapPutGrow/Int64/4194304-16             774ms ± 1%     474ms ± 1%      -38.79%  (p=0.000 n=9+10)
MapPutGrow/Int32/6-16                  85.4ns ± 0%   159.5ns ± 1%      +86.80%  (p=0.000 n=10+10)
MapPutGrow/Int32/12-16                  385ns ± 0%     363ns ± 0%       -5.81%  (p=0.000 n=10+10)
MapPutGrow/Int32/18-16                  822ns ± 0%     648ns ± 0%      -21.10%  (p=0.000 n=10+10)
MapPutGrow/Int32/24-16                 1.04µs ± 0%    0.73µs ± 1%      -29.67%  (p=0.000 n=10+10)
MapPutGrow/Int32/30-16                 1.80µs ± 0%    1.22µs ± 0%      -32.15%  (p=0.000 n=10+9)
MapPutGrow/Int32/64-16                 4.00µs ± 0%    2.49µs ± 0%      -37.86%  (p=0.000 n=10+9)
MapPutGrow/Int32/128-16                8.14µs ± 0%    4.88µs ± 1%      -40.00%  (p=0.000 n=10+10)
MapPutGrow/Int32/256-16                16.1µs ± 0%     9.6µs ± 1%      -40.63%  (p=0.000 n=9+10)
MapPutGrow/Int32/512-16                31.6µs ± 0%    18.8µs ± 0%      -40.57%  (p=0.000 n=10+10)
MapPutGrow/Int32/1024-16               62.3µs ± 0%    37.0µs ± 1%      -40.61%  (p=0.000 n=10+10)
MapPutGrow/Int32/2048-16                124µs ± 0%      74µs ± 0%      -40.63%  (p=0.000 n=10+9)
MapPutGrow/Int32/4096-16                245µs ± 0%     190µs ± 0%      -22.31%  (p=0.000 n=10+10)
MapPutGrow/Int32/8192-16                495µs ± 0%     435µs ± 0%      -12.10%  (p=0.000 n=10+10)
MapPutGrow/Int32/32768-16              2.08ms ± 0%    1.93ms ± 0%       -7.08%  (p=0.000 n=10+10)
MapPutGrow/Int32/65536-16              4.37ms ± 1%    4.00ms ± 0%       -8.34%  (p=0.000 n=8+8)
MapPutGrow/Int32/131072-16             10.0ms ± 3%     8.2ms ± 0%      -18.19%  (p=0.000 n=10+10)
MapPutGrow/Int32/262144-16             22.3ms ± 1%    17.5ms ± 1%      -21.44%  (p=0.000 n=10+10)
MapPutGrow/Int32/524288-16             50.5ms ± 1%    37.1ms ± 2%      -26.56%  (p=0.000 n=10+10)
MapPutGrow/Int32/1048576-16             119ms ± 2%      79ms ± 1%      -33.30%  (p=0.000 n=10+10)
MapPutGrow/Int32/2097152-16             285ms ± 1%     174ms ± 1%      -39.14%  (p=0.000 n=10+10)
MapPutGrow/Int32/4194304-16             654ms ± 1%     390ms ± 1%      -40.40%  (p=0.000 n=10+10)
MapPutGrow/String/6-16                 88.6ns ± 0%   209.8ns ± 0%     +136.77%  (p=0.000 n=10+9)
MapPutGrow/String/12-16                 490ns ± 1%     539ns ± 0%       +9.98%  (p=0.000 n=10+10)
MapPutGrow/String/18-16                1.14µs ± 1%    1.10µs ± 0%       -3.14%  (p=0.000 n=10+9)
MapPutGrow/String/24-16                1.36µs ± 1%    1.21µs ± 1%      -11.09%  (p=0.000 n=10+10)
MapPutGrow/String/30-16                2.47µs ± 2%    2.19µs ± 1%      -11.41%  (p=0.000 n=10+10)
MapPutGrow/String/64-16                5.46µs ± 0%    4.41µs ± 1%      -19.23%  (p=0.000 n=9+10)
MapPutGrow/String/128-16               11.1µs ± 1%     8.6µs ± 0%      -22.92%  (p=0.000 n=10+10)
MapPutGrow/String/256-16               22.1µs ± 1%    16.4µs ± 1%      -25.99%  (p=0.000 n=10+10)
MapPutGrow/String/512-16               44.8µs ± 0%    32.7µs ± 1%      -27.06%  (p=0.000 n=9+10)
MapPutGrow/String/1024-16              89.5µs ± 1%    63.9µs ± 1%      -28.60%  (p=0.000 n=10+10)
MapPutGrow/String/2048-16               182µs ± 1%     128µs ± 1%      -29.66%  (p=0.000 n=10+10)
MapPutGrow/String/4096-16               386µs ± 1%     290µs ± 0%      -24.91%  (p=0.000 n=9+8)
MapPutGrow/String/8192-16               853µs ± 1%     663µs ± 1%      -22.23%  (p=0.000 n=10+9)
MapPutGrow/String/32768-16             4.04ms ± 3%    3.18ms ± 1%      -21.36%  (p=0.000 n=10+10)
MapPutGrow/String/65536-16             8.75ms ± 3%    7.13ms ± 3%      -18.57%  (p=0.000 n=10+10)
MapPutGrow/String/131072-16            20.1ms ± 3%    14.8ms ± 2%      -26.71%  (p=0.000 n=10+10)
MapPutGrow/String/262144-16            46.0ms ± 0%    32.4ms ± 3%      -29.53%  (p=0.000 n=8+10)
MapPutGrow/String/524288-16             112ms ± 1%      72ms ± 3%      -35.11%  (p=0.000 n=7+10)
MapPutGrow/String/1048576-16            268ms ± 2%     169ms ± 2%      -36.92%  (p=0.000 n=10+10)
MapPutGrow/String/2097152-16            660ms ± 2%     395ms ± 1%      -40.18%  (p=0.000 n=9+8)
MapPutGrow/String/4194304-16            1.43s ± 1%     0.91s ± 1%      -36.55%  (p=0.000 n=9+10)
MapPutPreAllocate/Int64/6-16           83.7ns ± 0%   142.5ns ± 1%      +70.38%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/12-16           330ns ± 0%     227ns ± 1%      -31.29%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/18-16           534ns ± 1%     329ns ± 1%      -38.34%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/24-16           759ns ± 0%     409ns ± 1%      -46.16%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/30-16           918ns ± 1%     549ns ± 1%      -40.19%  (p=0.000 n=10+9)
MapPutPreAllocate/Int64/64-16          2.11µs ± 1%    1.06µs ± 0%      -49.94%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/128-16         4.11µs ± 0%    2.07µs ± 1%      -49.74%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/256-16         7.89µs ± 0%    3.97µs ± 1%      -49.76%  (p=0.000 n=9+10)
MapPutPreAllocate/Int64/512-16         15.7µs ± 1%     7.8µs ± 1%      -50.22%  (p=0.000 n=10+9)
MapPutPreAllocate/Int64/1024-16        31.3µs ± 0%    16.3µs ± 1%      -47.79%  (p=0.000 n=9+9)
MapPutPreAllocate/Int64/2048-16        64.8µs ± 1%    31.3µs ± 1%      -51.69%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/4096-16         132µs ± 1%      73µs ± 1%      -45.02%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/8192-16         272µs ± 1%     154µs ± 1%      -43.55%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/32768-16       1.24ms ± 1%    0.79ms ± 1%      -36.04%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/65536-16       2.52ms ± 0%    1.77ms ± 2%      -29.86%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/131072-16      5.75ms ± 1%    3.45ms ± 1%      -39.97%  (p=0.000 n=10+9)
MapPutPreAllocate/Int64/262144-16      12.6ms ± 1%     8.0ms ± 3%      -36.98%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/524288-16      30.1ms ± 1%    20.1ms ± 3%      -33.43%  (p=0.000 n=10+9)
MapPutPreAllocate/Int64/1048576-16     72.2ms ± 1%    52.5ms ± 4%      -27.26%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/2097152-16      164ms ± 1%     132ms ± 5%      -19.77%  (p=0.000 n=8+10)
MapPutPreAllocate/Int64/4194304-16      363ms ± 1%     300ms ± 1%      -17.39%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/6-16           84.9ns ± 0%   131.4ns ± 1%      +54.89%  (p=0.000 n=10+8)
MapPutPreAllocate/Int32/12-16           298ns ± 0%     220ns ± 0%      -26.06%  (p=0.000 n=10+8)
MapPutPreAllocate/Int32/18-16           479ns ± 0%     309ns ± 1%      -35.42%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/24-16           692ns ± 0%     399ns ± 1%      -42.29%  (p=0.000 n=10+9)
MapPutPreAllocate/Int32/30-16           820ns ± 0%     478ns ± 1%      -41.71%  (p=0.000 n=10+9)
MapPutPreAllocate/Int32/64-16          1.82µs ± 0%    0.88µs ± 1%      -51.68%  (p=0.000 n=10+9)
MapPutPreAllocate/Int32/128-16         3.62µs ± 0%    1.64µs ± 1%      -54.61%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/256-16         7.21µs ± 0%    3.21µs ± 0%      -55.51%  (p=0.000 n=10+8)
MapPutPreAllocate/Int32/512-16         14.0µs ± 0%     6.3µs ± 1%      -55.40%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/1024-16        27.7µs ± 0%    12.4µs ± 1%      -55.10%  (p=0.000 n=10+9)
MapPutPreAllocate/Int32/2048-16        56.0µs ± 0%    25.1µs ± 1%      -55.19%  (p=0.000 n=8+8)
MapPutPreAllocate/Int32/4096-16         114µs ± 0%      59µs ± 1%      -47.86%  (p=0.000 n=9+9)
MapPutPreAllocate/Int32/8192-16         233µs ± 0%     124µs ± 1%      -46.80%  (p=0.000 n=8+10)
MapPutPreAllocate/Int32/32768-16       1.01ms ± 0%    0.57ms ± 2%      -43.78%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/65536-16       2.25ms ± 0%    1.36ms ±10%      -39.79%  (p=0.000 n=7+10)
MapPutPreAllocate/Int32/131072-16      5.07ms ± 1%    3.24ms ±11%      -35.97%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/262144-16      10.9ms ± 1%     6.1ms ± 1%      -44.05%  (p=0.000 n=10+8)
MapPutPreAllocate/Int32/524288-16      24.2ms ± 1%    14.4ms ± 5%      -40.49%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/1048576-16     59.5ms ± 2%    38.3ms ± 8%      -35.55%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/2097152-16      145ms ± 1%     103ms ± 3%      -29.32%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/4194304-16      319ms ± 1%     251ms ± 3%      -21.13%  (p=0.000 n=10+10)
MapPutPreAllocate/String/6-16          92.1ns ± 0%   225.2ns ± 1%     +144.64%  (p=0.000 n=9+10)
MapPutPreAllocate/String/12-16          395ns ± 1%     401ns ± 1%       +1.57%  (p=0.000 n=10+10)
MapPutPreAllocate/String/18-16          661ns ± 0%     616ns ± 1%       -6.87%  (p=0.000 n=9+10)
MapPutPreAllocate/String/24-16          885ns ± 0%     778ns ± 1%      -12.01%  (p=0.000 n=8+10)
MapPutPreAllocate/String/30-16         1.13µs ± 0%    1.03µs ± 1%       -8.95%  (p=0.000 n=9+9)
MapPutPreAllocate/String/64-16         2.41µs ± 0%    2.09µs ± 1%      -13.16%  (p=0.000 n=10+10)
MapPutPreAllocate/String/128-16        4.67µs ± 0%    4.06µs ± 1%      -13.21%  (p=0.000 n=10+10)
MapPutPreAllocate/String/256-16        9.29µs ± 0%    7.98µs ± 1%      -14.04%  (p=0.000 n=8+10)
MapPutPreAllocate/String/512-16        19.0µs ± 0%    16.4µs ± 1%      -13.60%  (p=0.000 n=10+10)
MapPutPreAllocate/String/1024-16       38.0µs ± 1%    31.4µs ± 1%      -17.41%  (p=0.000 n=10+10)
MapPutPreAllocate/String/2048-16       76.3µs ± 0%    63.8µs ± 1%      -16.33%  (p=0.000 n=10+10)
MapPutPreAllocate/String/4096-16        160µs ± 1%     150µs ± 1%       -6.23%  (p=0.000 n=10+10)
MapPutPreAllocate/String/8192-16        345µs ± 1%     323µs ± 4%       -6.41%  (p=0.000 n=10+9)
MapPutPreAllocate/String/32768-16      1.61ms ± 3%    1.86ms ± 2%      +15.65%  (p=0.000 n=10+10)
MapPutPreAllocate/String/65536-16      3.40ms ± 1%    3.89ms ± 3%      +14.42%  (p=0.000 n=9+10)
MapPutPreAllocate/String/131072-16     7.78ms ± 1%    7.53ms ± 2%       -3.22%  (p=0.000 n=10+10)
MapPutPreAllocate/String/262144-16     19.3ms ± 1%    18.6ms ± 2%       -3.31%  (p=0.000 n=9+10)
MapPutPreAllocate/String/524288-16     45.8ms ± 2%    44.1ms ± 3%       -3.59%  (p=0.000 n=10+10)
MapPutPreAllocate/String/1048576-16     105ms ± 1%     108ms ± 1%       +2.09%  (p=0.000 n=8+9)
MapPutPreAllocate/String/2097152-16     257ms ± 1%     253ms ± 2%       -1.51%  (p=0.010 n=9+10)
MapPutPreAllocate/String/4194304-16     562ms ± 1%     565ms ± 2%         ~     (p=0.436 n=10+10)
MapPutReuse/Int64/6-16                 92.3ns ± 0%    75.5ns ± 0%      -18.25%  (p=0.000 n=10+10)
MapPutReuse/Int64/12-16                 272ns ± 0%     131ns ± 0%      -51.86%  (p=0.000 n=8+9)
MapPutReuse/Int64/18-16                 435ns ± 0%     184ns ± 0%      -57.64%  (p=0.000 n=10+9)
MapPutReuse/Int64/24-16                 653ns ± 0%     263ns ± 0%      -59.77%  (p=0.000 n=10+8)
MapPutReuse/Int64/30-16                 754ns ± 0%     310ns ± 0%      -58.92%  (p=0.000 n=10+8)
MapPutReuse/Int64/64-16                1.66µs ± 0%    0.64µs ± 0%      -61.35%  (p=0.000 n=10+8)
MapPutReuse/Int64/128-16               3.35µs ± 0%    1.27µs ± 1%      -61.95%  (p=0.000 n=10+10)
MapPutReuse/Int64/256-16               6.70µs ± 0%    2.52µs ± 1%      -62.35%  (p=0.000 n=10+9)
MapPutReuse/Int64/512-16               13.3µs ± 0%     5.2µs ± 4%      -61.40%  (p=0.000 n=10+10)
MapPutReuse/Int64/1024-16              26.6µs ± 0%    10.4µs ± 4%      -60.83%  (p=0.000 n=10+10)
MapPutReuse/Int64/2048-16              55.2µs ± 0%    22.3µs ± 1%      -59.54%  (p=0.000 n=10+9)
MapPutReuse/Int64/4096-16               114µs ± 0%      55µs ± 3%      -51.35%  (p=0.000 n=10+10)
MapPutReuse/Int64/8192-16               234µs ± 0%     113µs ± 2%      -51.45%  (p=0.000 n=9+10)
MapPutReuse/Int64/32768-16             1.00ms ± 1%    0.51ms ± 2%      -48.75%  (p=0.000 n=10+10)
MapPutReuse/Int64/65536-16             2.26ms ± 1%    1.22ms ± 2%      -45.91%  (p=0.000 n=9+9)
MapPutReuse/Int64/131072-16            4.75ms ± 2%    2.65ms ± 2%      -44.27%  (p=0.000 n=10+10)
MapPutReuse/Int64/262144-16            10.2ms ± 1%     5.9ms ± 4%      -42.46%  (p=0.000 n=10+10)
MapPutReuse/Int64/524288-16            22.0ms ± 1%    15.3ms ± 7%      -30.66%  (p=0.000 n=9+9)
MapPutReuse/Int64/1048576-16           57.2ms ± 2%    55.5ms ± 6%       -3.09%  (p=0.019 n=10+10)
MapPutReuse/Int64/2097152-16            133ms ± 2%     137ms ± 5%       +3.07%  (p=0.004 n=10+10)
MapPutReuse/Int64/4194304-16            319ms ± 1%     290ms ± 1%       -8.86%  (p=0.000 n=9+10)
MapPutReuse/Int32/6-16                 93.9ns ± 0%    73.6ns ± 2%      -21.59%  (p=0.000 n=10+10)
MapPutReuse/Int32/12-16                 271ns ± 0%     127ns ± 2%      -53.15%  (p=0.000 n=9+10)
MapPutReuse/Int32/18-16                 440ns ± 0%     176ns ± 0%      -59.94%  (p=0.000 n=10+10)
MapPutReuse/Int32/24-16                 655ns ± 0%     252ns ± 0%      -61.56%  (p=0.000 n=8+9)
MapPutReuse/Int32/30-16                 764ns ± 0%     292ns ± 0%      -61.83%  (p=0.000 n=10+9)
MapPutReuse/Int32/64-16                1.67µs ± 0%    0.60µs ± 0%      -64.35%  (p=0.000 n=10+9)
MapPutReuse/Int32/128-16               3.42µs ± 0%    1.20µs ± 0%      -64.79%  (p=0.000 n=10+9)
MapPutReuse/Int32/256-16               6.83µs ± 0%    2.59µs ± 0%      -62.04%  (p=0.000 n=9+9)
MapPutReuse/Int32/512-16               13.6µs ± 0%     5.0µs ± 2%      -63.40%  (p=0.000 n=9+9)
MapPutReuse/Int32/1024-16              27.1µs ± 0%    10.1µs ± 5%      -62.63%  (p=0.000 n=8+10)
MapPutReuse/Int32/2048-16              53.5µs ± 0%    19.4µs ± 2%      -63.71%  (p=0.000 n=10+10)
MapPutReuse/Int32/4096-16               111µs ± 0%      50µs ± 3%      -55.16%  (p=0.000 n=10+10)
MapPutReuse/Int32/8192-16               228µs ± 0%     103µs ± 2%      -54.72%  (p=0.000 n=10+10)
MapPutReuse/Int32/32768-16              955µs ± 0%     443µs ± 3%      -53.64%  (p=0.000 n=9+10)
MapPutReuse/Int32/65536-16             2.03ms ± 1%    0.95ms ± 1%      -53.22%  (p=0.000 n=10+10)
MapPutReuse/Int32/131072-16            4.50ms ± 1%    2.71ms ± 2%      -39.79%  (p=0.000 n=10+8)
MapPutReuse/Int32/262144-16            9.35ms ± 1%    5.05ms ± 2%      -46.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/524288-16            20.4ms ± 0%    11.3ms ± 5%      -44.58%  (p=0.000 n=9+10)
MapPutReuse/Int32/1048576-16           43.4ms ± 1%    37.7ms ±14%      -13.10%  (p=0.000 n=10+10)
MapPutReuse/Int32/2097152-16            107ms ± 1%     122ms ± 6%      +13.64%  (p=0.000 n=10+10)
MapPutReuse/Int32/4194304-16            266ms ± 1%     263ms ± 5%         ~     (p=0.968 n=9+10)
MapPutReuse/String/6-16                 103ns ± 0%      97ns ± 2%       -5.47%  (p=0.000 n=10+10)
MapPutReuse/String/12-16                298ns ± 0%     184ns ± 1%      -38.21%  (p=0.000 n=10+10)
MapPutReuse/String/18-16                494ns ± 0%     273ns ± 0%      -44.79%  (p=0.000 n=9+9)
MapPutReuse/String/24-16                726ns ± 0%     368ns ± 1%      -49.27%  (p=0.000 n=10+10)
MapPutReuse/String/30-16                855ns ± 0%     478ns ± 7%      -44.05%  (p=0.000 n=9+10)
MapPutReuse/String/64-16               1.84µs ± 0%    0.99µs ±11%      -46.31%  (p=0.000 n=9+8)
MapPutReuse/String/128-16              3.71µs ± 0%    1.86µs ± 1%      -49.94%  (p=0.000 n=10+9)
MapPutReuse/String/256-16              7.41µs ± 1%    3.76µs ± 6%      -49.24%  (p=0.000 n=10+10)
MapPutReuse/String/512-16              14.8µs ± 0%     7.8µs ± 5%      -47.39%  (p=0.000 n=10+10)
MapPutReuse/String/1024-16             31.1µs ± 0%    16.5µs ± 2%      -46.91%  (p=0.000 n=9+10)
MapPutReuse/String/2048-16             63.7µs ± 0%    36.1µs ± 1%      -43.26%  (p=0.000 n=9+9)
MapPutReuse/String/4096-16              130µs ± 0%      85µs ± 2%      -34.69%  (p=0.000 n=9+10)
MapPutReuse/String/8192-16              268µs ± 0%     178µs ± 0%      -33.75%  (p=0.000 n=10+9)
MapPutReuse/String/32768-16            1.26ms ± 1%    0.89ms ± 3%      -28.93%  (p=0.000 n=9+10)
MapPutReuse/String/65536-16            2.66ms ± 1%    2.00ms ± 3%      -24.73%  (p=0.000 n=10+10)
MapPutReuse/String/131072-16           5.72ms ± 2%    4.38ms ± 3%      -23.47%  (p=0.000 n=10+10)
MapPutReuse/String/262144-16           12.4ms ± 2%    11.1ms ± 2%      -10.17%  (p=0.000 n=10+10)
MapPutReuse/String/524288-16           36.5ms ± 1%    27.3ms ±17%      -25.33%  (p=0.000 n=10+10)
MapPutReuse/String/1048576-16          83.4ms ± 2%    81.3ms ±10%         ~     (p=0.065 n=9+10)
MapPutReuse/String/2097152-16           197ms ± 1%     208ms ± 4%       +5.68%  (p=0.000 n=9+10)
MapPutReuse/String/4194304-16           433ms ± 1%     456ms ± 1%       +5.28%  (p=0.000 n=9+10)
MapPutDelete/Int64/6-16                27.2ns ± 0%    25.3ns ± 1%       -6.91%  (p=0.000 n=9+10)
MapPutDelete/Int64/12-16               28.5ns ± 3%    23.9ns ± 6%      -16.24%  (p=0.000 n=9+10)
MapPutDelete/Int64/18-16               27.2ns ± 8%    21.9ns ±10%      -19.18%  (p=0.000 n=10+10)
MapPutDelete/Int64/24-16               28.5ns ± 2%    24.9ns ± 9%      -12.50%  (p=0.000 n=8+10)
MapPutDelete/Int64/30-16               26.9ns ± 7%    20.1ns ± 7%      -25.57%  (p=0.000 n=10+10)
MapPutDelete/Int64/64-16               26.9ns ± 4%    20.5ns ± 9%      -23.87%  (p=0.000 n=10+10)
MapPutDelete/Int64/128-16              27.0ns ± 3%    20.9ns ± 7%      -22.50%  (p=0.000 n=10+9)
MapPutDelete/Int64/256-16              27.1ns ± 2%    21.1ns ± 5%      -22.16%  (p=0.000 n=10+10)
MapPutDelete/Int64/512-16              27.2ns ± 2%    22.1ns ± 6%      -18.93%  (p=0.000 n=10+10)
MapPutDelete/Int64/1024-16             32.8ns ± 2%    22.7ns ± 5%      -30.81%  (p=0.000 n=10+10)
MapPutDelete/Int64/2048-16             45.8ns ± 2%    23.2ns ± 6%      -49.37%  (p=0.000 n=10+9)
MapPutDelete/Int64/4096-16             51.7ns ± 1%    28.1ns ± 2%      -45.58%  (p=0.000 n=10+10)
MapPutDelete/Int64/8192-16             54.5ns ± 1%    28.9ns ± 2%      -46.99%  (p=0.000 n=9+10)
MapPutDelete/Int64/32768-16            57.6ns ± 0%    31.1ns ± 1%      -45.98%  (p=0.000 n=10+10)
MapPutDelete/Int64/65536-16            64.5ns ± 1%    36.2ns ± 2%      -43.82%  (p=0.000 n=10+8)
MapPutDelete/Int64/131072-16           69.8ns ± 1%    42.8ns ± 2%      -38.59%  (p=0.000 n=8+10)
MapPutDelete/Int64/262144-16           75.4ns ± 2%    52.9ns ± 9%      -29.79%  (p=0.000 n=9+10)
MapPutDelete/Int64/524288-16           81.4ns ± 1%    70.5ns ±17%      -13.30%  (p=0.000 n=9+10)
MapPutDelete/Int64/1048576-16          87.4ns ± 2%    94.4ns ± 9%       +7.97%  (p=0.007 n=10+10)
MapPutDelete/Int64/2097152-16           111ns ± 2%     101ns ± 3%       -9.45%  (p=0.000 n=10+10)
MapPutDelete/Int64/4194304-16           143ns ± 1%     109ns ± 2%      -23.90%  (p=0.000 n=10+10)
MapPutDelete/Int32/6-16                26.0ns ± 0%    21.3ns ± 0%      -18.10%  (p=0.000 n=9+10)
MapPutDelete/Int32/12-16               27.0ns ± 2%    21.1ns ±14%      -21.80%  (p=0.000 n=9+10)
MapPutDelete/Int32/18-16               26.0ns ± 6%    19.5ns ±10%      -25.08%  (p=0.000 n=9+10)
MapPutDelete/Int32/24-16               28.2ns ± 4%    21.7ns ±13%      -23.04%  (p=0.000 n=10+10)
MapPutDelete/Int32/30-16               25.7ns ± 8%    18.9ns ± 6%      -26.38%  (p=0.000 n=10+10)
MapPutDelete/Int32/64-16               25.7ns ± 5%    19.1ns ± 7%      -25.73%  (p=0.000 n=10+10)
MapPutDelete/Int32/128-16              25.7ns ± 3%    20.2ns ± 9%      -21.24%  (p=0.000 n=10+10)
MapPutDelete/Int32/256-16              25.9ns ± 3%    20.1ns ± 6%      -22.51%  (p=0.000 n=9+10)
MapPutDelete/Int32/512-16              26.8ns ± 7%    20.2ns ± 4%      -24.36%  (p=0.000 n=10+9)
MapPutDelete/Int32/1024-16             31.9ns ± 2%    21.1ns ± 6%      -33.82%  (p=0.000 n=10+10)
MapPutDelete/Int32/2048-16             43.5ns ± 2%    21.1ns ± 5%      -51.51%  (p=0.000 n=10+10)
MapPutDelete/Int32/4096-16             49.9ns ± 1%    26.2ns ± 5%      -47.53%  (p=0.000 n=10+10)
MapPutDelete/Int32/8192-16             52.6ns ± 1%    26.9ns ± 4%      -48.81%  (p=0.000 n=10+9)
MapPutDelete/Int32/32768-16            55.0ns ± 0%    28.1ns ± 1%      -48.91%  (p=0.000 n=9+10)
MapPutDelete/Int32/65536-16            57.4ns ± 1%    29.8ns ± 1%      -48.04%  (p=0.000 n=9+10)
MapPutDelete/Int32/131072-16           65.2ns ± 2%    35.1ns ± 5%      -46.24%  (p=0.000 n=10+10)
MapPutDelete/Int32/262144-16           68.7ns ± 2%    38.0ns ± 2%      -44.68%  (p=0.000 n=10+10)
MapPutDelete/Int32/524288-16           75.2ns ± 2%    43.8ns ±14%      -41.68%  (p=0.000 n=10+10)
MapPutDelete/Int32/1048576-16          80.8ns ± 2%    58.8ns ±13%      -27.17%  (p=0.000 n=10+10)
MapPutDelete/Int32/2097152-16          88.1ns ± 3%    72.9ns ± 6%      -17.31%  (p=0.000 n=10+10)
MapPutDelete/Int32/4194304-16           119ns ± 1%      90ns ± 4%      -23.91%  (p=0.000 n=7+10)
MapPutDelete/String/6-16               31.1ns ± 0%    25.9ns ± 1%      -16.67%  (p=0.000 n=8+9)
MapPutDelete/String/12-16              32.4ns ± 2%    30.6ns ±16%         ~     (p=0.097 n=8+10)
MapPutDelete/String/18-16              31.3ns ± 2%    28.4ns ±12%       -9.23%  (p=0.003 n=9+10)
MapPutDelete/String/24-16              33.1ns ± 4%    33.0ns ± 9%         ~     (p=0.579 n=10+10)
MapPutDelete/String/30-16              30.2ns ± 3%    28.7ns ±12%         ~     (p=0.113 n=9+9)
MapPutDelete/String/64-16              31.2ns ± 2%    29.8ns ±16%         ~     (p=0.326 n=9+10)
MapPutDelete/String/128-16             31.2ns ± 1%    29.9ns ±14%         ~     (p=0.165 n=8+10)
MapPutDelete/String/256-16             31.5ns ± 3%    30.2ns ±12%         ~     (p=0.075 n=10+10)
MapPutDelete/String/512-16             32.1ns ± 2%    30.7ns ± 9%       -4.39%  (p=0.030 n=10+10)
MapPutDelete/String/1024-16            47.8ns ± 4%    31.4ns ± 4%      -34.36%  (p=0.000 n=10+8)
MapPutDelete/String/2048-16            62.1ns ± 1%    33.0ns ± 1%      -46.94%  (p=0.000 n=10+9)
MapPutDelete/String/4096-16            69.3ns ± 1%    41.3ns ± 2%      -40.36%  (p=0.000 n=10+10)
MapPutDelete/String/8192-16            71.0ns ± 1%    42.0ns ± 3%      -40.93%  (p=0.000 n=10+10)
MapPutDelete/String/32768-16           83.2ns ± 1%    48.9ns ± 1%      -41.22%  (p=0.000 n=9+10)
MapPutDelete/String/65536-16           87.7ns ± 1%    55.3ns ± 3%      -37.00%  (p=0.000 n=9+10)
MapPutDelete/String/131072-16          91.5ns ± 2%    69.8ns ± 8%      -23.68%  (p=0.000 n=10+10)
MapPutDelete/String/262144-16           102ns ± 1%      96ns ±20%         ~     (p=0.138 n=10+10)
MapPutDelete/String/524288-16           113ns ± 2%     140ns ±17%      +24.65%  (p=0.000 n=10+10)
MapPutDelete/String/1048576-16          140ns ± 2%     159ns ± 4%      +14.06%  (p=0.000 n=10+10)
MapPutDelete/String/2097152-16          177ns ± 2%     174ns ± 2%         ~     (p=0.063 n=10+10)
MapPutDelete/String/4194304-16          205ns ± 2%     185ns ± 2%       -9.75%  (p=0.000 n=10+10)
Memory: Go's builtin map (old) vs swiss.Map (new)
name                                 old alloc/op   new alloc/op   delta
MapIter/Int/6-16                        0.00B          0.00B              ~     (all equal)
MapIter/Int/12-16                       0.00B          0.00B              ~     (all equal)
MapIter/Int/18-16                       0.00B          0.00B              ~     (all equal)
MapIter/Int/24-16                       0.00B          0.00B              ~     (all equal)
MapIter/Int/30-16                       0.00B          0.00B              ~     (all equal)
MapIter/Int/64-16                       0.00B          0.00B              ~     (all equal)
MapIter/Int/128-16                      0.00B          0.00B              ~     (all equal)
MapIter/Int/256-16                      0.00B          0.00B              ~     (all equal)
MapIter/Int/512-16                      0.00B          0.00B              ~     (all equal)
MapIter/Int/1024-16                     0.00B          0.00B              ~     (all equal)
MapIter/Int/2048-16                     0.00B          0.00B              ~     (all equal)
MapIter/Int/4096-16                     0.00B          0.00B              ~     (all equal)
MapIter/Int/8192-16                     0.00B          0.00B              ~     (all equal)
MapIter/Int/32768-16                    0.00B          0.00B              ~     (all equal)
MapIter/Int/65536-16                    0.00B          0.00B              ~     (all equal)
MapIter/Int/131072-16                   0.00B          0.00B              ~     (all equal)
MapIter/Int/262144-16                   0.00B          0.00B              ~     (all equal)
MapIter/Int/524288-16                   0.00B          0.00B              ~     (all equal)
MapIter/Int/1048576-16                  0.00B          0.00B              ~     (all equal)
MapIter/Int/2097152-16                  0.00B          0.00B              ~     (all equal)
MapIter/Int/4194304-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/6-16                    0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/12-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/18-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/24-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/30-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/64-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/128-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/256-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/512-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/1024-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/2048-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/4096-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/8192-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/32768-16                0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/65536-16                0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/131072-16               0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/262144-16               0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/524288-16               0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/1048576-16              0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/2097152-16              0.00B          0.00B              ~     (all equal)
MapGetHit/Int64/4194304-16              0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/6-16                    0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/12-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/18-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/24-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/30-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/64-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/128-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/256-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/512-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/1024-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/2048-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/4096-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/8192-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/32768-16                0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/65536-16                0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/131072-16               0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/262144-16               0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/524288-16               0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/1048576-16              0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/2097152-16              0.00B          0.00B              ~     (all equal)
MapGetHit/Int32/4194304-16              0.00B          0.00B              ~     (all equal)
MapGetHit/String/6-16                   0.00B          0.00B              ~     (all equal)
MapGetHit/String/12-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/String/18-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/String/24-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/String/30-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/String/64-16                  0.00B          0.00B              ~     (all equal)
MapGetHit/String/128-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/String/256-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/String/512-16                 0.00B          0.00B              ~     (all equal)
MapGetHit/String/1024-16                0.00B          0.00B              ~     (all equal)
MapGetHit/String/2048-16                0.00B          0.00B              ~     (all equal)
MapGetHit/String/4096-16                0.00B          0.00B              ~     (all equal)
MapGetHit/String/8192-16                0.00B          0.00B              ~     (all equal)
MapGetHit/String/32768-16               0.00B          0.00B              ~     (all equal)
MapGetHit/String/65536-16               0.00B          0.00B              ~     (all equal)
MapGetHit/String/131072-16              0.00B          0.00B              ~     (all equal)
MapGetHit/String/262144-16              0.00B          0.00B              ~     (all equal)
MapGetHit/String/524288-16              0.00B          0.00B              ~     (all equal)
MapGetHit/String/1048576-16             0.00B          0.00B              ~     (all equal)
MapGetHit/String/2097152-16             0.00B          0.00B              ~     (all equal)
MapGetHit/String/4194304-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/6-16                   0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/12-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/18-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/24-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/30-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/64-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/128-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/256-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/512-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/1024-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/2048-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/4096-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/8192-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/32768-16               0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/65536-16               0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/131072-16              0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/262144-16              0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/524288-16              0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/1048576-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/2097152-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/Int64/4194304-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/6-16                   0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/12-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/18-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/24-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/30-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/64-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/128-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/256-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/512-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/1024-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/2048-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/4096-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/8192-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/32768-16               0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/65536-16               0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/131072-16              0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/262144-16              0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/524288-16              0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/1048576-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/2097152-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/Int32/4194304-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/String/6-16                  0.00B          0.00B              ~     (all equal)
MapGetMiss/String/12-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/String/18-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/String/24-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/String/30-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/String/64-16                 0.00B          0.00B              ~     (all equal)
MapGetMiss/String/128-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/String/256-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/String/512-16                0.00B          0.00B              ~     (all equal)
MapGetMiss/String/1024-16               0.00B          0.00B              ~     (all equal)
MapGetMiss/String/2048-16               0.00B          0.00B              ~     (all equal)
MapGetMiss/String/4096-16               0.00B          0.00B              ~     (all equal)
MapGetMiss/String/8192-16               0.00B          0.00B              ~     (all equal)
MapGetMiss/String/32768-16              0.00B          0.00B              ~     (all equal)
MapGetMiss/String/65536-16              0.00B          0.00B              ~     (all equal)
MapGetMiss/String/131072-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/String/262144-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/String/524288-16             0.00B          0.00B              ~     (all equal)
MapGetMiss/String/1048576-16            0.00B          0.00B              ~     (all equal)
MapGetMiss/String/2097152-16            0.00B          0.00B              ~     (all equal)
MapGetMiss/String/4194304-16            0.00B          0.00B              ~     (all equal)
MapPutGrow/Int64/6-16                   0.00B        144.00B ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutGrow/Int64/12-16                   317B ± 0%      432B ± 0%      +36.28%  (p=0.000 n=10+10)
MapPutGrow/Int64/18-16                   931B ± 0%     1008B ± 0%       +8.27%  (p=0.000 n=10+10)
MapPutGrow/Int64/24-16                 1.01kB ± 0%    1.01kB ± 0%       -0.10%  (p=0.000 n=9+10)
MapPutGrow/Int64/30-16                 2.22kB ± 0%    2.16kB ± 0%       -2.65%  (p=0.000 n=10+10)
MapPutGrow/Int64/64-16                 5.18kB ± 0%    4.46kB ± 0%      -13.77%  (p=0.000 n=7+10)
MapPutGrow/Int64/128-16                10.8kB ± 0%     9.3kB ± 0%      -13.85%  (p=0.000 n=10+10)
MapPutGrow/Int64/256-16                21.5kB ± 0%    18.8kB ± 0%      -12.48%  (p=0.000 n=10+10)
MapPutGrow/Int64/512-16                43.2kB ± 0%    37.2kB ± 0%      -13.78%  (p=0.000 n=10+10)
MapPutGrow/Int64/1024-16               86.6kB ± 0%    78.2kB ± 0%       -9.68%  (p=0.000 n=10+10)
MapPutGrow/Int64/2048-16                173kB ± 0%     152kB ± 0%      -12.34%  (p=0.000 n=9+10)
MapPutGrow/Int64/4096-16                347kB ± 0%     226kB ± 0%      -34.94%  (p=0.000 n=10+10)
MapPutGrow/Int64/8192-16                686kB ± 0%     373kB ± 0%      -45.58%  (p=0.000 n=8+10)
MapPutGrow/Int64/32768-16              2.72MB ± 0%    1.26MB ± 0%      -53.72%  (p=0.000 n=9+10)
MapPutGrow/Int64/65536-16              5.45MB ± 0%    2.44MB ± 0%      -55.26%  (p=0.000 n=10+8)
MapPutGrow/Int64/131072-16             10.9MB ± 0%     4.8MB ± 0%      -56.05%  (p=0.000 n=9+9)
MapPutGrow/Int64/262144-16             21.9MB ± 0%     9.5MB ± 0%      -56.46%  (p=0.000 n=10+10)
MapPutGrow/Int64/524288-16             43.8MB ± 0%    19.0MB ± 0%      -56.67%  (p=0.000 n=10+10)
MapPutGrow/Int64/1048576-16            87.7MB ± 0%    37.9MB ± 0%      -56.84%  (p=0.000 n=10+10)
MapPutGrow/Int64/2097152-16             176MB ± 0%      76MB ± 0%      -56.98%  (p=0.000 n=10+10)
MapPutGrow/Int64/4194304-16             352MB ± 0%     151MB ± 0%      -57.07%  (p=0.000 n=10+8)
MapPutGrow/Int32/6-16                   0.00B         80.00B ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutGrow/Int32/12-16                   179B ± 0%      224B ± 0%      +25.14%  (p=0.000 n=10+10)
MapPutGrow/Int32/18-16                   525B ± 0%      512B ± 0%       -2.48%  (p=0.000 n=10+10)
MapPutGrow/Int32/24-16                   577B ± 0%      512B ± 0%      -11.27%  (p=0.000 n=10+10)
MapPutGrow/Int32/30-16                 1.25kB ± 0%    1.09kB ± 0%      -13.31%  (p=0.000 n=9+10)
MapPutGrow/Int32/64-16                 2.84kB ± 0%    2.24kB ± 0%      -21.10%  (p=0.002 n=8+10)
MapPutGrow/Int32/128-16                6.18kB ± 0%    4.54kB ± 0%      -26.44%  (p=0.000 n=10+10)
MapPutGrow/Int32/256-16                12.6kB ± 0%     9.4kB ± 0%      -25.12%  (p=0.000 n=10+10)
MapPutGrow/Int32/512-16                23.9kB ± 0%    18.9kB ± 0%      -20.99%  (p=0.000 n=9+10)
MapPutGrow/Int32/1024-16               47.7kB ± 0%    37.3kB ± 0%      -21.86%  (p=0.000 n=10+10)
MapPutGrow/Int32/2048-16                101kB ± 0%      78kB ± 0%      -22.55%  (p=0.000 n=9+10)
MapPutGrow/Int32/4096-16                194kB ± 0%     119kB ± 0%      -38.53%  (p=0.000 n=10+10)
MapPutGrow/Int32/8192-16                388kB ± 0%     201kB ± 0%      -48.14%  (p=0.000 n=10+10)
MapPutGrow/Int32/32768-16              1.53MB ± 0%    0.69MB ± 0%      -54.63%  (p=0.000 n=9+7)
MapPutGrow/Int32/65536-16              3.07MB ± 0%    1.35MB ± 0%      -56.03%  (p=0.000 n=10+10)
MapPutGrow/Int32/131072-16             6.16MB ± 0%    2.66MB ± 0%      -56.78%  (p=0.000 n=10+10)
MapPutGrow/Int32/262144-16             12.3MB ± 0%     5.3MB ± 0%      -57.16%  (p=0.000 n=10+10)
MapPutGrow/Int32/524288-16             24.7MB ± 0%    10.5MB ± 0%      -57.36%  (p=0.000 n=10+9)
MapPutGrow/Int32/1048576-16            49.6MB ± 0%    21.0MB ± 0%      -57.59%  (p=0.000 n=9+10)
MapPutGrow/Int32/2097152-16             100MB ± 0%      42MB ± 0%      -57.78%  (p=0.000 n=9+8)
MapPutGrow/Int32/4194304-16             200MB ± 0%      84MB ± 0%      -57.93%  (p=0.000 n=9+10)
MapPutGrow/String/6-16                  0.00B        288.00B ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutGrow/String/12-16                  618B ± 0%      864B ± 0%      +39.81%  (p=0.000 n=8+10)
MapPutGrow/String/18-16                1.83kB ± 0%    2.02kB ± 0%      +10.34%  (p=0.000 n=9+10)
MapPutGrow/String/24-16                1.94kB ± 0%    2.02kB ± 0%       +3.70%  (p=0.000 n=8+10)
MapPutGrow/String/30-16                4.34kB ± 0%    4.32kB ± 0%       -0.39%  (p=0.002 n=8+10)
MapPutGrow/String/64-16                9.66kB ± 0%    9.18kB ± 0%       -4.95%  (p=0.000 n=10+10)
MapPutGrow/String/128-16               19.8kB ± 0%    18.7kB ± 0%       -5.68%  (p=0.000 n=9+10)
MapPutGrow/String/256-16               40.2kB ± 0%    37.1kB ± 0%       -7.67%  (p=0.000 n=10+10)
MapPutGrow/String/512-16               83.2kB ± 0%    78.0kB ± 0%       -6.22%  (p=0.000 n=10+10)
MapPutGrow/String/1024-16               166kB ± 0%     152kB ± 0%       -8.84%  (p=0.000 n=10+10)
MapPutGrow/String/2048-16               325kB ± 0%     291kB ± 0%      -10.33%  (p=0.000 n=9+10)
MapPutGrow/String/4096-16               641kB ± 0%     430kB ± 0%      -32.88%  (p=0.000 n=10+10)
MapPutGrow/String/8192-16              1.27MB ± 0%    0.71MB ± 0%      -44.38%  (p=0.000 n=10+8)
MapPutGrow/String/32768-16             5.08MB ± 0%    2.38MB ± 0%      -53.11%  (p=0.000 n=10+10)
MapPutGrow/String/65536-16             10.2MB ± 0%     4.6MB ± 0%      -54.62%  (p=0.000 n=10+10)
MapPutGrow/String/131072-16            20.3MB ± 0%     9.1MB ± 0%      -55.37%  (p=0.000 n=10+9)
MapPutGrow/String/262144-16            40.6MB ± 0%    18.0MB ± 0%      -55.74%  (p=0.000 n=10+10)
MapPutGrow/String/524288-16            81.3MB ± 0%    35.8MB ± 0%      -55.93%  (p=0.000 n=10+10)
MapPutGrow/String/1048576-16            163MB ± 0%      71MB ± 0%      -56.03%  (p=0.000 n=10+8)
MapPutGrow/String/2097152-16            325MB ± 0%     143MB ± 0%      -56.07%  (p=0.000 n=10+10)
MapPutGrow/String/4194304-16            650MB ± 0%     285MB ± 0%      -56.10%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/6-16            0.00B        144.00B ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/12-16            317B ± 0%      288B ± 0%       -9.15%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/18-16            591B ± 0%      576B ± 0%       -2.54%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/24-16            672B ± 0%      576B ± 0%      -14.29%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/30-16          1.17kB ± 0%    1.15kB ± 0%       -1.20%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/64-16          2.72kB ± 0%    2.30kB ± 0%      -15.29%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/128-16         5.42kB ± 0%    4.86kB ± 0%      -10.23%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/256-16         10.3kB ± 0%     9.5kB ± 0%       -8.02%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/512-16         20.6kB ± 0%    18.4kB ± 0%      -10.39%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/1024-16        41.1kB ± 0%    41.0kB ± 0%       -0.37%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/2048-16        82.2kB ± 0%    73.7kB ± 0%      -10.30%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/4096-16         164kB ± 0%     148kB ± 0%      -10.25%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/8192-16         321kB ± 0%     295kB ± 0%       -7.96%  (p=0.000 n=9+9)
MapPutPreAllocate/Int64/32768-16       1.26MB ± 0%    1.18MB ± 0%       -6.18%  (p=0.000 n=10+9)
MapPutPreAllocate/Int64/65536-16       2.52MB ± 0%    2.36MB ± 0%       -6.19%  (p=0.000 n=9+10)
MapPutPreAllocate/Int64/131072-16      5.03MB ± 0%    4.72MB ± 0%       -6.17%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/262144-16      10.1MB ± 0%     9.4MB ± 0%       -6.11%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/524288-16      20.1MB ± 0%    18.9MB ± 0%       -6.18%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/1048576-16     40.3MB ± 0%    37.8MB ± 0%       -6.20%  (p=0.000 n=8+10)
MapPutPreAllocate/Int64/2097152-16     80.6MB ± 0%    75.5MB ± 0%       -6.24%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/4194304-16      161MB ± 0%     151MB ± 0%       -6.29%  (p=0.000 n=9+10)
MapPutPreAllocate/Int32/6-16            0.00B         80.00B ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/12-16            179B ± 0%      144B ± 0%      -19.55%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/18-16            330B ± 0%      288B ± 0%      -12.73%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/24-16            385B ± 0%      288B ± 0%      -25.19%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/30-16            649B ± 0%      576B ± 0%      -11.25%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/64-16          1.44kB ± 0%    1.15kB ± 0%      -20.11%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/128-16         3.11kB ± 0%    2.30kB ± 0%      -26.01%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/256-16         6.20kB ± 0%    4.86kB ± 0%      -21.58%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/512-16         11.0kB ± 0%     9.5kB ± 0%      -13.66%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/1024-16        21.9kB ± 0%    18.4kB ± 0%      -15.88%  (p=0.000 n=9+10)
MapPutPreAllocate/Int32/2048-16        49.4kB ± 0%    41.0kB ± 0%      -17.13%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/4096-16        90.6kB ± 0%    82.0kB ± 0%       -9.55%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/8192-16         181kB ± 0%     164kB ± 0%       -9.55%  (p=0.000 n=9+10)
MapPutPreAllocate/Int32/32768-16        701kB ± 0%     656kB ± 0%       -6.42%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/65536-16       1.40MB ± 0%    1.31MB ± 0%       -6.43%  (p=0.000 n=10+9)
MapPutPreAllocate/Int32/131072-16      2.80MB ± 0%    2.62MB ± 0%       -6.39%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/262144-16      5.60MB ± 0%    5.25MB ± 0%       -6.30%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/524288-16      11.2MB ± 0%    10.5MB ± 0%       -6.41%  (p=0.000 n=8+9)
MapPutPreAllocate/Int32/1048576-16     22.4MB ± 0%    21.0MB ± 0%       -6.45%  (p=0.000 n=9+10)
MapPutPreAllocate/Int32/2097152-16     44.9MB ± 0%    42.0MB ± 0%       -6.53%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/4194304-16     89.9MB ± 0%    84.0MB ± 0%       -6.61%  (p=0.000 n=10+8)
MapPutPreAllocate/String/6-16           0.00B        288.00B ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutPreAllocate/String/12-16           618B ± 0%      576B ± 0%       -6.80%  (p=0.002 n=8+10)
MapPutPreAllocate/String/18-16         1.17kB ± 0%    1.15kB ± 0%       -1.87%  (p=0.000 n=10+10)
MapPutPreAllocate/String/24-16         1.29kB ± 0%    1.15kB ± 0%      -10.77%  (p=0.000 n=9+10)
MapPutPreAllocate/String/30-16         2.32kB ± 0%    2.30kB ± 0%       -0.86%  (p=0.000 n=10+10)
MapPutPreAllocate/String/64-16         4.89kB ± 0%    4.86kB ± 0%       -0.59%  (p=0.000 n=10+10)
MapPutPreAllocate/String/128-16        9.50kB ± 0%    9.47kB ± 0%       -0.29%  (p=0.000 n=10+10)
MapPutPreAllocate/String/256-16        19.1kB ± 0%    18.4kB ± 0%       -3.48%  (p=0.000 n=10+10)
MapPutPreAllocate/String/512-16        41.0kB ± 0%    41.0kB ± 0%       -0.06%  (p=0.000 n=10+10)
MapPutPreAllocate/String/1024-16       81.9kB ± 0%    73.7kB ± 0%      -10.03%  (p=0.000 n=10+10)
MapPutPreAllocate/String/2048-16        156kB ± 0%     139kB ± 0%      -10.54%  (p=0.000 n=10+10)
MapPutPreAllocate/String/4096-16        303kB ± 0%     279kB ± 0%       -8.09%  (p=0.002 n=8+10)
MapPutPreAllocate/String/8192-16        598kB ± 0%     557kB ± 0%       -6.83%  (p=0.000 n=10+10)
MapPutPreAllocate/String/32768-16      2.37MB ± 0%    2.23MB ± 0%       -5.86%  (p=0.000 n=10+10)
MapPutPreAllocate/String/65536-16      4.74MB ± 0%    4.46MB ± 0%       -5.86%  (p=0.000 n=10+10)
MapPutPreAllocate/String/131072-16     9.47MB ± 0%    8.92MB ± 0%       -5.86%  (p=0.000 n=10+10)
MapPutPreAllocate/String/262144-16     18.9MB ± 0%    17.8MB ± 0%       -5.86%  (p=0.000 n=9+10)
MapPutPreAllocate/String/524288-16     37.9MB ± 0%    35.7MB ± 0%       -5.86%  (p=0.000 n=10+9)
MapPutPreAllocate/String/1048576-16    75.8MB ± 0%    71.3MB ± 0%       -5.86%  (p=0.000 n=10+8)
MapPutPreAllocate/String/2097152-16     152MB ± 0%     143MB ± 0%       -5.86%  (p=0.000 n=9+10)
MapPutPreAllocate/String/4194304-16     303MB ± 0%     285MB ± 0%       -5.86%  (p=0.000 n=10+10)
MapPutReuse/Int64/6-16                  0.00B          0.00B              ~     (all equal)
MapPutReuse/Int64/12-16                 25.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/18-16                 13.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/24-16                 85.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/30-16                 12.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/64-16                 8.00B ± 0%     0.00B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/128-16                18.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/256-16                34.0B ± 0%      0.0B          -100.00%  (p=0.000 n=9+10)
MapPutReuse/Int64/512-16                66.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/1024-16                128B ± 0%        0B          -100.00%  (p=0.002 n=8+10)
MapPutReuse/Int64/2048-16                252B ± 0%        0B          -100.00%  (p=0.000 n=6+10)
MapPutReuse/Int64/4096-16                506B ± 0%        0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/8192-16              1.03kB ± 0%    0.00kB          -100.00%  (p=0.000 n=9+10)
MapPutReuse/Int64/32768-16             4.49kB ± 0%    0.00kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/65536-16             9.36kB ± 0%    0.00kB          -100.00%  (p=0.000 n=9+10)
MapPutReuse/Int64/131072-16            17.6kB ± 0%     0.0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/262144-16            29.8kB ± 0%     0.0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/524288-16            72.8kB ± 0%     0.0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/1048576-16            155kB ± 0%       0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/2097152-16            352kB ± 9%       0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/4194304-16            761kB ± 0%       0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/6-16                  0.00B          0.00B              ~     (all equal)
MapPutReuse/Int32/12-16                 16.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/18-16                 8.00B ± 0%     0.00B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/24-16                 54.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/30-16                 8.00B ± 0%     0.00B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/64-16                 10.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/128-16                18.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/256-16                34.0B ± 0%      0.0B          -100.00%  (p=0.002 n=8+10)
MapPutReuse/Int32/512-16                66.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/1024-16                128B ± 0%        0B          -100.00%  (p=0.002 n=8+10)
MapPutReuse/Int32/2048-16                252B ± 0%        0B          -100.00%  (p=0.000 n=7+10)
MapPutReuse/Int32/4096-16                505B ± 0%        0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/8192-16              1.03kB ± 0%    0.00kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/32768-16             4.48kB ± 0%    0.00kB          -100.00%  (p=0.000 n=9+10)
MapPutReuse/Int32/65536-16             9.36kB ± 0%    0.00kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/131072-16            17.6kB ± 0%     0.0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/262144-16            29.8kB ± 0%     0.0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/524288-16            72.8kB ± 0%     0.0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/1048576-16            155kB ± 0%       0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/2097152-16            348kB ± 8%       0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/4194304-16            761kB ± 0%       0kB          -100.00%  (p=0.000 n=10+10)
MapPutReuse/String/6-16                 0.00B          0.00B              ~     (all equal)
MapPutReuse/String/12-16                41.6B ± 1%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/String/18-16                22.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/String/24-16                 139B ± 0%        0B          -100.00%  (p=0.002 n=8+10)
MapPutReuse/String/30-16                20.0B ± 0%      0.0B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/String/64-16                5.00B ± 0%     0.00B          -100.00%  (p=0.000 n=10+10)
MapPutReuse/String/128-16               4.00B ± 0%     0.00B          -100.00%  (p=0.002 n=8+10)
MapPutReuse/String/256-16               0.00B          0.00B              ~     (all equal)
MapPutReuse/String/512-16               0.00B          0.00B              ~     (all equal)
MapPutReuse/String/1024-16              0.00B          0.00B              ~     (all equal)
MapPutReuse/String/2048-16              0.00B          0.00B              ~     (all equal)
MapPutReuse/String/4096-16              0.00B          0.00B              ~     (all equal)
MapPutReuse/String/8192-16              0.00B          0.00B              ~     (all equal)
MapPutReuse/String/32768-16             0.00B          0.00B              ~     (all equal)
MapPutReuse/String/65536-16             0.00B          0.00B              ~     (all equal)
MapPutReuse/String/131072-16            0.00B          0.00B              ~     (all equal)
MapPutReuse/String/262144-16            0.00B          0.00B              ~     (all equal)
MapPutReuse/String/524288-16            0.00B          0.00B              ~     (all equal)
MapPutReuse/String/1048576-16           0.00B          0.00B              ~     (all equal)
MapPutReuse/String/2097152-16           0.00B          0.00B              ~     (all equal)
MapPutReuse/String/4194304-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/6-16                 0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/12-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/18-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/24-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/30-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/64-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/128-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/256-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/512-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/1024-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/2048-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/4096-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/8192-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/32768-16             0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/65536-16             0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/131072-16            0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/262144-16            0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/524288-16            0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/1048576-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/2097152-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/Int64/4194304-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/6-16                 0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/12-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/18-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/24-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/30-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/64-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/128-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/256-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/512-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/1024-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/2048-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/4096-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/8192-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/32768-16             0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/65536-16             0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/131072-16            0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/262144-16            0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/524288-16            0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/1048576-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/2097152-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/Int32/4194304-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/String/6-16                0.00B          0.00B              ~     (all equal)
MapPutDelete/String/12-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/String/18-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/String/24-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/String/30-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/String/64-16               0.00B          0.00B              ~     (all equal)
MapPutDelete/String/128-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/String/256-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/String/512-16              0.00B          0.00B              ~     (all equal)
MapPutDelete/String/1024-16             0.00B          0.00B              ~     (all equal)
MapPutDelete/String/2048-16             0.00B          0.00B              ~     (all equal)
MapPutDelete/String/4096-16             0.00B          0.00B              ~     (all equal)
MapPutDelete/String/8192-16             0.00B          0.00B              ~     (all equal)
MapPutDelete/String/32768-16            0.00B          0.00B              ~     (all equal)
MapPutDelete/String/65536-16            0.00B          0.00B              ~     (all equal)
MapPutDelete/String/131072-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/String/262144-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/String/524288-16           0.00B          0.00B              ~     (all equal)
MapPutDelete/String/1048576-16          0.00B          0.00B              ~     (all equal)
MapPutDelete/String/2097152-16          0.00B          0.00B              ~     (all equal)
MapPutDelete/String/4194304-16          0.00B          0.00B              ~     (all equal)

name                                 old allocs/op  new allocs/op  delta
MapIter/Int/6-16                         0.00           0.00              ~     (all equal)
MapIter/Int/12-16                        0.00           0.00              ~     (all equal)
MapIter/Int/18-16                        0.00           0.00              ~     (all equal)
MapIter/Int/24-16                        0.00           0.00              ~     (all equal)
MapIter/Int/30-16                        0.00           0.00              ~     (all equal)
MapIter/Int/64-16                        0.00           0.00              ~     (all equal)
MapIter/Int/128-16                       0.00           0.00              ~     (all equal)
MapIter/Int/256-16                       0.00           0.00              ~     (all equal)
MapIter/Int/512-16                       0.00           0.00              ~     (all equal)
MapIter/Int/1024-16                      0.00           0.00              ~     (all equal)
MapIter/Int/2048-16                      0.00           0.00              ~     (all equal)
MapIter/Int/4096-16                      0.00           0.00              ~     (all equal)
MapIter/Int/8192-16                      0.00           0.00              ~     (all equal)
MapIter/Int/32768-16                     0.00           0.00              ~     (all equal)
MapIter/Int/65536-16                     0.00           0.00              ~     (all equal)
MapIter/Int/131072-16                    0.00           0.00              ~     (all equal)
MapIter/Int/262144-16                    0.00           0.00              ~     (all equal)
MapIter/Int/524288-16                    0.00           0.00              ~     (all equal)
MapIter/Int/1048576-16                   0.00           0.00              ~     (all equal)
MapIter/Int/2097152-16                   0.00           0.00              ~     (all equal)
MapIter/Int/4194304-16                   0.00           0.00              ~     (all equal)
MapGetHit/Int64/6-16                     0.00           0.00              ~     (all equal)
MapGetHit/Int64/12-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int64/18-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int64/24-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int64/30-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int64/64-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int64/128-16                   0.00           0.00              ~     (all equal)
MapGetHit/Int64/256-16                   0.00           0.00              ~     (all equal)
MapGetHit/Int64/512-16                   0.00           0.00              ~     (all equal)
MapGetHit/Int64/1024-16                  0.00           0.00              ~     (all equal)
MapGetHit/Int64/2048-16                  0.00           0.00              ~     (all equal)
MapGetHit/Int64/4096-16                  0.00           0.00              ~     (all equal)
MapGetHit/Int64/8192-16                  0.00           0.00              ~     (all equal)
MapGetHit/Int64/32768-16                 0.00           0.00              ~     (all equal)
MapGetHit/Int64/65536-16                 0.00           0.00              ~     (all equal)
MapGetHit/Int64/131072-16                0.00           0.00              ~     (all equal)
MapGetHit/Int64/262144-16                0.00           0.00              ~     (all equal)
MapGetHit/Int64/524288-16                0.00           0.00              ~     (all equal)
MapGetHit/Int64/1048576-16               0.00           0.00              ~     (all equal)
MapGetHit/Int64/2097152-16               0.00           0.00              ~     (all equal)
MapGetHit/Int64/4194304-16               0.00           0.00              ~     (all equal)
MapGetHit/Int32/6-16                     0.00           0.00              ~     (all equal)
MapGetHit/Int32/12-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int32/18-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int32/24-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int32/30-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int32/64-16                    0.00           0.00              ~     (all equal)
MapGetHit/Int32/128-16                   0.00           0.00              ~     (all equal)
MapGetHit/Int32/256-16                   0.00           0.00              ~     (all equal)
MapGetHit/Int32/512-16                   0.00           0.00              ~     (all equal)
MapGetHit/Int32/1024-16                  0.00           0.00              ~     (all equal)
MapGetHit/Int32/2048-16                  0.00           0.00              ~     (all equal)
MapGetHit/Int32/4096-16                  0.00           0.00              ~     (all equal)
MapGetHit/Int32/8192-16                  0.00           0.00              ~     (all equal)
MapGetHit/Int32/32768-16                 0.00           0.00              ~     (all equal)
MapGetHit/Int32/65536-16                 0.00           0.00              ~     (all equal)
MapGetHit/Int32/131072-16                0.00           0.00              ~     (all equal)
MapGetHit/Int32/262144-16                0.00           0.00              ~     (all equal)
MapGetHit/Int32/524288-16                0.00           0.00              ~     (all equal)
MapGetHit/Int32/1048576-16               0.00           0.00              ~     (all equal)
MapGetHit/Int32/2097152-16               0.00           0.00              ~     (all equal)
MapGetHit/Int32/4194304-16               0.00           0.00              ~     (all equal)
MapGetHit/String/6-16                    0.00           0.00              ~     (all equal)
MapGetHit/String/12-16                   0.00           0.00              ~     (all equal)
MapGetHit/String/18-16                   0.00           0.00              ~     (all equal)
MapGetHit/String/24-16                   0.00           0.00              ~     (all equal)
MapGetHit/String/30-16                   0.00           0.00              ~     (all equal)
MapGetHit/String/64-16                   0.00           0.00              ~     (all equal)
MapGetHit/String/128-16                  0.00           0.00              ~     (all equal)
MapGetHit/String/256-16                  0.00           0.00              ~     (all equal)
MapGetHit/String/512-16                  0.00           0.00              ~     (all equal)
MapGetHit/String/1024-16                 0.00           0.00              ~     (all equal)
MapGetHit/String/2048-16                 0.00           0.00              ~     (all equal)
MapGetHit/String/4096-16                 0.00           0.00              ~     (all equal)
MapGetHit/String/8192-16                 0.00           0.00              ~     (all equal)
MapGetHit/String/32768-16                0.00           0.00              ~     (all equal)
MapGetHit/String/65536-16                0.00           0.00              ~     (all equal)
MapGetHit/String/131072-16               0.00           0.00              ~     (all equal)
MapGetHit/String/262144-16               0.00           0.00              ~     (all equal)
MapGetHit/String/524288-16               0.00           0.00              ~     (all equal)
MapGetHit/String/1048576-16              0.00           0.00              ~     (all equal)
MapGetHit/String/2097152-16              0.00           0.00              ~     (all equal)
MapGetHit/String/4194304-16              0.00           0.00              ~     (all equal)
MapGetMiss/Int64/6-16                    0.00           0.00              ~     (all equal)
MapGetMiss/Int64/12-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int64/18-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int64/24-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int64/30-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int64/64-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int64/128-16                  0.00           0.00              ~     (all equal)
MapGetMiss/Int64/256-16                  0.00           0.00              ~     (all equal)
MapGetMiss/Int64/512-16                  0.00           0.00              ~     (all equal)
MapGetMiss/Int64/1024-16                 0.00           0.00              ~     (all equal)
MapGetMiss/Int64/2048-16                 0.00           0.00              ~     (all equal)
MapGetMiss/Int64/4096-16                 0.00           0.00              ~     (all equal)
MapGetMiss/Int64/8192-16                 0.00           0.00              ~     (all equal)
MapGetMiss/Int64/32768-16                0.00           0.00              ~     (all equal)
MapGetMiss/Int64/65536-16                0.00           0.00              ~     (all equal)
MapGetMiss/Int64/131072-16               0.00           0.00              ~     (all equal)
MapGetMiss/Int64/262144-16               0.00           0.00              ~     (all equal)
MapGetMiss/Int64/524288-16               0.00           0.00              ~     (all equal)
MapGetMiss/Int64/1048576-16              0.00           0.00              ~     (all equal)
MapGetMiss/Int64/2097152-16              0.00           0.00              ~     (all equal)
MapGetMiss/Int64/4194304-16              0.00           0.00              ~     (all equal)
MapGetMiss/Int32/6-16                    0.00           0.00              ~     (all equal)
MapGetMiss/Int32/12-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int32/18-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int32/24-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int32/30-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int32/64-16                   0.00           0.00              ~     (all equal)
MapGetMiss/Int32/128-16                  0.00           0.00              ~     (all equal)
MapGetMiss/Int32/256-16                  0.00           0.00              ~     (all equal)
MapGetMiss/Int32/512-16                  0.00           0.00              ~     (all equal)
MapGetMiss/Int32/1024-16                 0.00           0.00              ~     (all equal)
MapGetMiss/Int32/2048-16                 0.00           0.00              ~     (all equal)
MapGetMiss/Int32/4096-16                 0.00           0.00              ~     (all equal)
MapGetMiss/Int32/8192-16                 0.00           0.00              ~     (all equal)
MapGetMiss/Int32/32768-16                0.00           0.00              ~     (all equal)
MapGetMiss/Int32/65536-16                0.00           0.00              ~     (all equal)
MapGetMiss/Int32/131072-16               0.00           0.00              ~     (all equal)
MapGetMiss/Int32/262144-16               0.00           0.00              ~     (all equal)
MapGetMiss/Int32/524288-16               0.00           0.00              ~     (all equal)
MapGetMiss/Int32/1048576-16              0.00           0.00              ~     (all equal)
MapGetMiss/Int32/2097152-16              0.00           0.00              ~     (all equal)
MapGetMiss/Int32/4194304-16              0.00           0.00              ~     (all equal)
MapGetMiss/String/6-16                   0.00           0.00              ~     (all equal)
MapGetMiss/String/12-16                  0.00           0.00              ~     (all equal)
MapGetMiss/String/18-16                  0.00           0.00              ~     (all equal)
MapGetMiss/String/24-16                  0.00           0.00              ~     (all equal)
MapGetMiss/String/30-16                  0.00           0.00              ~     (all equal)
MapGetMiss/String/64-16                  0.00           0.00              ~     (all equal)
MapGetMiss/String/128-16                 0.00           0.00              ~     (all equal)
MapGetMiss/String/256-16                 0.00           0.00              ~     (all equal)
MapGetMiss/String/512-16                 0.00           0.00              ~     (all equal)
MapGetMiss/String/1024-16                0.00           0.00              ~     (all equal)
MapGetMiss/String/2048-16                0.00           0.00              ~     (all equal)
MapGetMiss/String/4096-16                0.00           0.00              ~     (all equal)
MapGetMiss/String/8192-16                0.00           0.00              ~     (all equal)
MapGetMiss/String/32768-16               0.00           0.00              ~     (all equal)
MapGetMiss/String/65536-16               0.00           0.00              ~     (all equal)
MapGetMiss/String/131072-16              0.00           0.00              ~     (all equal)
MapGetMiss/String/262144-16              0.00           0.00              ~     (all equal)
MapGetMiss/String/524288-16              0.00           0.00              ~     (all equal)
MapGetMiss/String/1048576-16             0.00           0.00              ~     (all equal)
MapGetMiss/String/2097152-16             0.00           0.00              ~     (all equal)
MapGetMiss/String/4194304-16             0.00           0.00              ~     (all equal)
MapPutGrow/Int64/6-16                    0.00           1.00 ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutGrow/Int64/12-16                   1.00 ± 0%      2.00 ± 0%     +100.00%  (p=0.000 n=10+10)
MapPutGrow/Int64/18-16                   3.00 ± 0%      3.00 ± 0%         ~     (all equal)
MapPutGrow/Int64/24-16                   4.00 ± 0%      3.00 ± 0%      -25.00%  (p=0.000 n=10+10)
MapPutGrow/Int64/30-16                   6.00 ± 0%      4.00 ± 0%      -33.33%  (p=0.000 n=10+10)
MapPutGrow/Int64/64-16                   12.0 ± 0%       5.0 ± 0%      -58.33%  (p=0.000 n=10+10)
MapPutGrow/Int64/128-16                  19.0 ± 0%       6.0 ± 0%      -68.42%  (p=0.000 n=10+10)
MapPutGrow/Int64/256-16                  27.0 ± 0%       7.0 ± 0%      -74.07%  (p=0.000 n=10+10)
MapPutGrow/Int64/512-16                  42.0 ± 0%       8.0 ± 0%      -80.95%  (p=0.000 n=10+10)
MapPutGrow/Int64/1024-16                 64.0 ± 0%       9.0 ± 0%      -85.94%  (p=0.000 n=10+10)
MapPutGrow/Int64/2048-16                 99.0 ± 0%      10.0 ± 0%      -89.90%  (p=0.002 n=8+10)
MapPutGrow/Int64/4096-16                  161 ± 0%        12 ± 0%      -92.57%  (p=0.000 n=10+10)
MapPutGrow/Int64/8192-16                  274 ± 0%        15 ± 0%      -94.53%  (p=0.000 n=7+10)
MapPutGrow/Int64/32768-16               1.13k ± 0%     0.03k ± 0%      -97.43%  (p=0.000 n=9+10)
MapPutGrow/Int64/65536-16               2.35k ± 0%     0.05k ± 0%      -98.04%  (p=0.000 n=10+10)
MapPutGrow/Int64/131072-16              4.76k ± 0%     0.08k ± 0%      -98.34%  (p=0.000 n=10+10)
MapPutGrow/Int64/262144-16              9.58k ± 0%     0.14k ± 0%      -98.50%  (p=0.000 n=10+10)
MapPutGrow/Int64/524288-16              19.2k ± 0%      0.3k ± 0%      -98.58%  (p=0.000 n=10+10)
MapPutGrow/Int64/1048576-16             38.4k ± 0%      0.5k ± 0%      -98.62%  (p=0.000 n=10+10)
MapPutGrow/Int64/2097152-16             76.8k ± 0%      1.0k ± 0%      -98.64%  (p=0.000 n=10+10)
MapPutGrow/Int64/4194304-16              154k ± 0%        2k ± 0%      -98.65%  (p=0.000 n=10+10)
MapPutGrow/Int32/6-16                    0.00           1.00 ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutGrow/Int32/12-16                   1.00 ± 0%      2.00 ± 0%     +100.00%  (p=0.000 n=10+10)
MapPutGrow/Int32/18-16                   3.00 ± 0%      3.00 ± 0%         ~     (all equal)
MapPutGrow/Int32/24-16                   4.00 ± 0%      3.00 ± 0%      -25.00%  (p=0.000 n=10+10)
MapPutGrow/Int32/30-16                   6.00 ± 0%      4.00 ± 0%      -33.33%  (p=0.000 n=10+10)
MapPutGrow/Int32/64-16                   12.0 ± 0%       5.0 ± 0%      -58.33%  (p=0.000 n=10+10)
MapPutGrow/Int32/128-16                  20.0 ± 0%       6.0 ± 0%      -70.00%  (p=0.000 n=10+10)
MapPutGrow/Int32/256-16                  28.0 ± 0%       7.0 ± 0%      -75.00%  (p=0.000 n=10+10)
MapPutGrow/Int32/512-16                  37.3 ± 2%       8.0 ± 0%      -78.55%  (p=0.000 n=10+10)
MapPutGrow/Int32/1024-16                 65.0 ± 0%       9.0 ± 0%      -86.15%  (p=0.002 n=8+10)
MapPutGrow/Int32/2048-16                  113 ± 0%        10 ± 0%      -91.15%  (p=0.000 n=10+10)
MapPutGrow/Int32/4096-16                  130 ± 0%        12 ± 0%      -90.77%  (p=0.000 n=9+10)
MapPutGrow/Int32/8192-16                  254 ± 0%        15 ± 0%      -94.08%  (p=0.000 n=10+10)
MapPutGrow/Int32/32768-16               1.05k ± 0%     0.03k ± 0%      -97.24%  (p=0.000 n=10+10)
MapPutGrow/Int32/65536-16               2.27k ± 0%     0.05k ± 0%      -97.97%  (p=0.000 n=10+10)
MapPutGrow/Int32/131072-16              4.68k ± 0%     0.08k ± 0%      -98.31%  (p=0.000 n=10+10)
MapPutGrow/Int32/262144-16              9.50k ± 0%     0.14k ± 0%      -98.48%  (p=0.000 n=10+10)
MapPutGrow/Int32/524288-16              19.1k ± 0%      0.3k ± 0%      -98.57%  (p=0.000 n=10+10)
MapPutGrow/Int32/1048576-16             38.3k ± 0%      0.5k ± 0%      -98.62%  (p=0.000 n=9+10)
MapPutGrow/Int32/2097152-16             76.8k ± 0%      1.0k ± 0%      -98.64%  (p=0.000 n=9+10)
MapPutGrow/Int32/4194304-16              154k ± 0%        2k ± 0%      -98.65%  (p=0.000 n=9+10)
MapPutGrow/String/6-16                   0.00           1.00 ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutGrow/String/12-16                  1.00 ± 0%      2.00 ± 0%     +100.00%  (p=0.000 n=10+10)
MapPutGrow/String/18-16                  2.00 ± 0%      3.00 ± 0%      +50.00%  (p=0.000 n=10+10)
MapPutGrow/String/24-16                  2.00 ± 0%      3.00 ± 0%      +50.00%  (p=0.000 n=10+10)
MapPutGrow/String/30-16                  4.00 ± 0%      4.00 ± 0%         ~     (all equal)
MapPutGrow/String/64-16                  7.00 ± 0%      5.00 ± 0%      -28.57%  (p=0.000 n=10+10)
MapPutGrow/String/128-16                 10.0 ± 0%       6.0 ± 0%      -40.00%  (p=0.000 n=10+10)
MapPutGrow/String/256-16                 16.0 ± 0%       7.0 ± 0%      -56.25%  (p=0.000 n=10+10)
MapPutGrow/String/512-16                 24.0 ± 0%       8.0 ± 0%      -66.67%  (p=0.000 n=10+10)
MapPutGrow/String/1024-16                30.0 ± 0%       9.0 ± 0%      -70.00%  (p=0.000 n=10+10)
MapPutGrow/String/2048-16                39.0 ± 0%      10.0 ± 0%      -74.36%  (p=0.000 n=9+10)
MapPutGrow/String/4096-16                87.0 ± 0%      12.0 ± 0%      -86.21%  (p=0.000 n=9+10)
MapPutGrow/String/8192-16                 212 ± 0%        15 ± 0%      -92.92%  (p=0.002 n=8+10)
MapPutGrow/String/32768-16              1.08k ± 0%     0.03k ± 0%      -97.30%  (p=0.000 n=10+10)
MapPutGrow/String/65536-16              2.28k ± 0%     0.05k ± 0%      -97.98%  (p=0.000 n=10+10)
MapPutGrow/String/131072-16             4.68k ± 0%     0.08k ± 0%      -98.31%  (p=0.000 n=10+10)
MapPutGrow/String/262144-16             9.47k ± 0%     0.14k ± 0%      -98.48%  (p=0.000 n=10+10)
MapPutGrow/String/524288-16             19.1k ± 0%      0.3k ± 0%      -98.57%  (p=0.000 n=10+10)
MapPutGrow/String/1048576-16            38.3k ± 0%      0.5k ± 0%      -98.62%  (p=0.000 n=10+10)
MapPutGrow/String/2097152-16            76.7k ± 0%      1.0k ± 0%      -98.64%  (p=0.000 n=10+10)
MapPutGrow/String/4194304-16             153k ± 1%        2k ± 0%      -98.65%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/6-16             0.00           1.00 ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/12-16            1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/Int64/18-16            1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/Int64/24-16            2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/30-16            1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/Int64/64-16            2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/128-16           3.00 ± 0%      1.00 ± 0%      -66.67%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/256-16           4.00 ± 0%      1.00 ± 0%      -75.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/512-16           5.00 ± 0%      1.00 ± 0%      -80.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/1024-16          6.00 ± 0%      1.00 ± 0%      -83.33%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/2048-16          7.00 ± 0%      1.00 ± 0%      -85.71%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/4096-16          8.00 ± 0%      3.00 ± 0%      -62.50%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/8192-16          9.00 ± 0%      5.00 ± 0%      -44.44%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/32768-16         12.0 ± 0%      17.0 ± 0%      +41.67%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/65536-16         13.0 ± 0%      33.0 ± 0%     +153.85%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/131072-16        14.0 ± 0%      65.0 ± 0%     +364.29%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/262144-16        15.0 ± 0%     129.0 ± 0%     +760.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/524288-16        17.0 ± 0%     257.0 ± 0%    +1411.76%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/1048576-16       19.0 ± 0%     513.0 ± 0%    +2600.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/2097152-16       21.0 ± 0%    1025.0 ± 0%    +4780.95%  (p=0.000 n=10+10)
MapPutPreAllocate/Int64/4194304-16       24.0 ± 0%    2049.0 ± 0%    +8437.50%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/6-16             0.00           1.00 ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/12-16            1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/Int32/18-16            1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/Int32/24-16            2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/30-16            1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/Int32/64-16            2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/128-16           3.00 ± 0%      1.00 ± 0%      -66.67%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/256-16           4.00 ± 0%      1.00 ± 0%      -75.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/512-16           5.00 ± 0%      1.00 ± 0%      -80.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/1024-16          6.00 ± 0%      1.00 ± 0%      -83.33%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/2048-16          7.00 ± 0%      1.00 ± 0%      -85.71%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/4096-16          8.00 ± 0%      3.00 ± 0%      -62.50%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/8192-16          9.00 ± 0%      5.00 ± 0%      -44.44%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/32768-16         12.0 ± 0%      17.0 ± 0%      +41.67%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/65536-16         13.0 ± 0%      33.0 ± 0%     +153.85%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/131072-16        14.0 ± 0%      65.0 ± 0%     +364.29%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/262144-16        15.0 ± 0%     129.0 ± 0%     +760.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/524288-16        17.0 ± 0%     257.0 ± 0%    +1411.76%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/1048576-16       19.0 ± 0%     513.0 ± 0%    +2600.00%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/2097152-16       21.0 ± 0%    1025.0 ± 0%    +4780.95%  (p=0.000 n=10+10)
MapPutPreAllocate/Int32/4194304-16       24.0 ± 0%    2049.0 ± 0%    +8437.50%  (p=0.000 n=10+10)
MapPutPreAllocate/String/6-16            0.00           1.00 ± 0%        +Inf%  (p=0.000 n=10+10)
MapPutPreAllocate/String/12-16           1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/String/18-16           1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/String/24-16           1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/String/30-16           1.00 ± 0%      1.00 ± 0%         ~     (all equal)
MapPutPreAllocate/String/64-16           2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/128-16          2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/256-16          2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/512-16          2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/1024-16         2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/2048-16         2.00 ± 0%      1.00 ± 0%      -50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/4096-16         2.00 ± 0%      3.00 ± 0%      +50.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/8192-16         2.00 ± 0%      5.00 ± 0%     +150.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/32768-16        2.00 ± 0%     17.00 ± 0%     +750.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/65536-16        2.00 ± 0%     33.00 ± 0%    +1550.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/131072-16       2.00 ± 0%     65.00 ± 0%    +3150.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/262144-16       2.00 ± 0%    129.00 ± 0%    +6350.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/524288-16       2.00 ± 0%    257.00 ± 0%   +12750.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/1048576-16      2.00 ± 0%    513.00 ± 0%   +25550.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/2097152-16      2.00 ± 0%   1025.00 ± 0%   +51150.00%  (p=0.000 n=10+10)
MapPutPreAllocate/String/4194304-16      2.00 ± 0%   2049.00 ± 0%  +102350.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/6-16                   0.00           0.00              ~     (all equal)
MapPutReuse/Int64/12-16                  0.00           0.00              ~     (all equal)
MapPutReuse/Int64/18-16                  0.00           0.00              ~     (all equal)
MapPutReuse/Int64/24-16                  1.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/30-16                  0.00           0.00              ~     (all equal)
MapPutReuse/Int64/64-16                  0.00           0.00              ~     (all equal)
MapPutReuse/Int64/128-16                 1.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/256-16                 2.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/512-16                 3.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/1024-16                4.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/2048-16                5.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/4096-16                6.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/8192-16                7.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/32768-16               9.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/65536-16               11.0 ± 0%       0.0          -100.00%  (p=0.000 n=9+10)
MapPutReuse/Int64/131072-16              12.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/262144-16              13.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/524288-16              15.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/1048576-16             17.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/2097152-16             19.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int64/4194304-16             22.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/6-16                   0.00           0.00              ~     (all equal)
MapPutReuse/Int32/12-16                  0.00           0.00              ~     (all equal)
MapPutReuse/Int32/18-16                  0.00           0.00              ~     (all equal)
MapPutReuse/Int32/24-16                  1.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/30-16                  0.00           0.00              ~     (all equal)
MapPutReuse/Int32/64-16                  0.00           0.00              ~     (all equal)
MapPutReuse/Int32/128-16                 1.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/256-16                 2.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/512-16                 3.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/1024-16                4.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/2048-16                5.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/4096-16                6.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/8192-16                7.00 ± 0%      0.00          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/32768-16               9.00 ± 0%      0.00          -100.00%  (p=0.000 n=9+10)
MapPutReuse/Int32/65536-16               11.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/131072-16              12.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/262144-16              13.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/524288-16              15.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/1048576-16             17.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/2097152-16             19.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/Int32/4194304-16             22.0 ± 0%       0.0          -100.00%  (p=0.000 n=10+10)
MapPutReuse/String/6-16                  0.00           0.00              ~     (all equal)
MapPutReuse/String/12-16                 0.00           0.00              ~     (all equal)
MapPutReuse/String/18-16                 0.00           0.00              ~     (all equal)
MapPutReuse/String/24-16                 0.00           0.00              ~     (all equal)
MapPutReuse/String/30-16                 0.00           0.00              ~     (all equal)
MapPutReuse/String/64-16                 0.00           0.00              ~     (all equal)
MapPutReuse/String/128-16                0.00           0.00              ~     (all equal)
MapPutReuse/String/256-16                0.00           0.00              ~     (all equal)
MapPutReuse/String/512-16                0.00           0.00              ~     (all equal)
MapPutReuse/String/1024-16               0.00           0.00              ~     (all equal)
MapPutReuse/String/2048-16               0.00           0.00              ~     (all equal)
MapPutReuse/String/4096-16               0.00           0.00              ~     (all equal)
MapPutReuse/String/8192-16               0.00           0.00              ~     (all equal)
MapPutReuse/String/32768-16              0.00           0.00              ~     (all equal)
MapPutReuse/String/65536-16              0.00           0.00              ~     (all equal)
MapPutReuse/String/131072-16             0.00           0.00              ~     (all equal)
MapPutReuse/String/262144-16             0.00           0.00              ~     (all equal)
MapPutReuse/String/524288-16             0.00           0.00              ~     (all equal)
MapPutReuse/String/1048576-16            0.00           0.00              ~     (all equal)
MapPutReuse/String/2097152-16            0.00           0.00              ~     (all equal)
MapPutReuse/String/4194304-16            0.00           0.00              ~     (all equal)
MapPutDelete/Int64/6-16                  0.00           0.00              ~     (all equal)
MapPutDelete/Int64/12-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int64/18-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int64/24-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int64/30-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int64/64-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int64/128-16                0.00           0.00              ~     (all equal)
MapPutDelete/Int64/256-16                0.00           0.00              ~     (all equal)
MapPutDelete/Int64/512-16                0.00           0.00              ~     (all equal)
MapPutDelete/Int64/1024-16               0.00           0.00              ~     (all equal)
MapPutDelete/Int64/2048-16               0.00           0.00              ~     (all equal)
MapPutDelete/Int64/4096-16               0.00           0.00              ~     (all equal)
MapPutDelete/Int64/8192-16               0.00           0.00              ~     (all equal)
MapPutDelete/Int64/32768-16              0.00           0.00              ~     (all equal)
MapPutDelete/Int64/65536-16              0.00           0.00              ~     (all equal)
MapPutDelete/Int64/131072-16             0.00           0.00              ~     (all equal)
MapPutDelete/Int64/262144-16             0.00           0.00              ~     (all equal)
MapPutDelete/Int64/524288-16             0.00           0.00              ~     (all equal)
MapPutDelete/Int64/1048576-16            0.00           0.00              ~     (all equal)
MapPutDelete/Int64/2097152-16            0.00           0.00              ~     (all equal)
MapPutDelete/Int64/4194304-16            0.00           0.00              ~     (all equal)
MapPutDelete/Int32/6-16                  0.00           0.00              ~     (all equal)
MapPutDelete/Int32/12-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int32/18-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int32/24-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int32/30-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int32/64-16                 0.00           0.00              ~     (all equal)
MapPutDelete/Int32/128-16                0.00           0.00              ~     (all equal)
MapPutDelete/Int32/256-16                0.00           0.00              ~     (all equal)
MapPutDelete/Int32/512-16                0.00           0.00              ~     (all equal)
MapPutDelete/Int32/1024-16               0.00           0.00              ~     (all equal)
MapPutDelete/Int32/2048-16               0.00           0.00              ~     (all equal)
MapPutDelete/Int32/4096-16               0.00           0.00              ~     (all equal)
MapPutDelete/Int32/8192-16               0.00           0.00              ~     (all equal)
MapPutDelete/Int32/32768-16              0.00           0.00              ~     (all equal)
MapPutDelete/Int32/65536-16              0.00           0.00              ~     (all equal)
MapPutDelete/Int32/131072-16             0.00           0.00              ~     (all equal)
MapPutDelete/Int32/262144-16             0.00           0.00              ~     (all equal)
MapPutDelete/Int32/524288-16             0.00           0.00              ~     (all equal)
MapPutDelete/Int32/1048576-16            0.00           0.00              ~     (all equal)
MapPutDelete/Int32/2097152-16            0.00           0.00              ~     (all equal)
MapPutDelete/Int32/4194304-16            0.00           0.00              ~     (all equal)
MapPutDelete/String/6-16                 0.00           0.00              ~     (all equal)
MapPutDelete/String/12-16                0.00           0.00              ~     (all equal)
MapPutDelete/String/18-16                0.00           0.00              ~     (all equal)
MapPutDelete/String/24-16                0.00           0.00              ~     (all equal)
MapPutDelete/String/30-16                0.00           0.00              ~     (all equal)
MapPutDelete/String/64-16                0.00           0.00              ~     (all equal)
MapPutDelete/String/128-16               0.00           0.00              ~     (all equal)
MapPutDelete/String/256-16               0.00           0.00              ~     (all equal)
MapPutDelete/String/512-16               0.00           0.00              ~     (all equal)
MapPutDelete/String/1024-16              0.00           0.00              ~     (all equal)
MapPutDelete/String/2048-16              0.00           0.00              ~     (all equal)
MapPutDelete/String/4096-16              0.00           0.00              ~     (all equal)
MapPutDelete/String/8192-16              0.00           0.00              ~     (all equal)
MapPutDelete/String/32768-16             0.00           0.00              ~     (all equal)
MapPutDelete/String/65536-16             0.00           0.00              ~     (all equal)
MapPutDelete/String/131072-16            0.00           0.00              ~     (all equal)
MapPutDelete/String/262144-16            0.00           0.00              ~     (all equal)
MapPutDelete/String/524288-16            0.00           0.00              ~     (all equal)
MapPutDelete/String/1048576-16           0.00           0.00              ~     (all equal)
MapPutDelete/String/2097152-16           0.00           0.00              ~     (all equal)
MapPutDelete/String/4194304-16           0.00           0.00              ~     (all equal)

On top of the base Swiss Tables design, swiss.Map adds an extendible hashing layer in order to enable incremental resizing of large maps which significantly reduces tail latency for Put operations in maps with hundreds of thousands of entries or more.

swiss.Map provides pseudo-randomized iteration (iteration order will change from one iteration to the next) and iteration stability akin to Go's builtin map if the map is mutated during iteration.

Caveats

  • The implementation currently requires a little endian CPU architecture. This is not a fundamental limitation of the implementation, merely a choice of expediency.
  • Go's builtin map has a fast-path for comparing strings that share their underlying storage. This fast-path is feasible because map[string]T is specialized for string keys which isn't currently possible with Go's generics.
  • Go's builtin map has a fast-path for maps with int32, int64, and string keys that fit in a single bucket (8 entries) which avoids performing hash(key) and simply linearly searches through the bucket. Similar to the above, this fast-path is feasible because the runtime can specialize the implementation on the key type.

TODO

  • Add support for SIMD searching on x86 and 8-byte Neon SIMD searching on arm64
    • This appears to be somewhat difficult. Naively implementing the match routines in assembly isn't workable as the function call overhead dominates the performance improvement from the SIMD comparisons. The Abseil implementation is leveraring gcc/llvm assembly intrinsics which are not currently available in Go. In order to take advantage of SIMD we'll have to write most/all of the probing loop in assembly.

About

Go port of Google's Swiss Table hash table

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published