Skip to content

Commit 4d1f197

Browse files
committedAug 31, 2022
update benchmarks
1 parent 0fa1dda commit 4d1f197

File tree

3 files changed

+157
-164
lines changed

3 files changed

+157
-164
lines changed
 

‎README.md

+13-23
Original file line numberDiff line numberDiff line change
@@ -61,45 +61,35 @@ func main() {
6161

6262
## Benchmarks
6363

64-
Benchmarks were performed against [golang sync.Map](https://pkg.go.dev/sync#Map) and the latest generics-enabled [cornelk-hashmap](https://github.com/cornelk/hashmap)
64+
Benchmarks were performed against [golang sync.Map](https://pkg.go.dev/sync#Map) and the latest [cornelk-hashmap](https://github.com/cornelk/hashmap)
6565

6666
All results were computed from [benchstat](https://pkg.go.dev/golang.org/x/perf/cmd/benchstat) of 20 runs (code available [here](./benchmarks))
6767

6868
1. Concurrent Reads Only
6969
```
7070
name time/op
71-
HaxMapReadsOnly-8 9.82µs ±15%
72-
GoSyncMapReadsOnly-8 25.0µs ±11%
73-
CornelkMapReadsOnly-8 11.3µs ±15%
74-
75-
name alloc/op
76-
HaxMapReadsOnly-8 0.00B
77-
GoSyncMapReadsOnly-8 0.00B
78-
CornelkMapReadsOnly-8 0.00B
79-
80-
name allocs/op
81-
HaxMapReadsOnly-8 0.00
82-
GoSyncMapReadsOnly-8 0.00
83-
CornelkMapReadsOnly-8 0.00
71+
HaxMapReadsOnly-8 8.75µs ± 9%
72+
GoSyncMapReadsOnly-8 22.0µs ±11%
73+
CornelkMapReadsOnly-8 9.20µs ±10%
8474
```
8575

8676

8777
2. Concurrent Reads with Writes
8878
```
8979
name time/op
90-
HaxMapReadsWithWrites-8 11.3µs ±12%
91-
GoSyncMapReadsWithWrites-8 28.3µs ±16%
92-
CornelkMapReadsWithWrites-8 13.1µs ±12%
80+
HaxMapReadsWithWrites-8 10.0µs ± 9%
81+
GoSyncMapReadsWithWrites-8 24.8µs ±11%
82+
CornelkMapReadsWithWrites-8 10.5µs ± 9%
9383
9484
name alloc/op
95-
HaxMapReadsWithWrites-8 1.23kB ± 8%
96-
GoSyncMapReadsWithWrites-8 5.84kB ±10%
97-
CornelkMapReadsWithWrites-8 5.11kB ± 9%
85+
HaxMapReadsWithWrites-8 1.29kB ± 6%
86+
GoSyncMapReadsWithWrites-8 6.20kB ± 5%
87+
CornelkMapReadsWithWrites-8 1.59kB ±10%
9888
9989
name allocs/op
100-
HaxMapReadsWithWrites-8 154 ± 9%
101-
GoSyncMapReadsWithWrites-8 541 ±10%
102-
CornelkMapReadsWithWrites-8 182 ± 9%
90+
HaxMapReadsWithWrites-8 161 ± 4%
91+
GoSyncMapReadsWithWrites-8 574 ± 5%
92+
CornelkMapReadsWithWrites-8 198 ±10%
10393
```
10494

10595
From the above results it is evident that `haxmap` takes the least time, memory and allocations in all cases making it the best golang concurrent hashmap in this period of time

‎benchmarks/results.txt

+140-140
Original file line numberDiff line numberDiff line change
@@ -1,200 +1,200 @@
11
goos: darwin
22
goarch: arm64
3-
BenchmarkHaxMapReadsOnly-8 137290 8963 ns/op 0 B/op 0 allocs/op
4-
BenchmarkHaxMapReadsWithWrites-8 116986 10257 ns/op 1240 B/op 155 allocs/op
5-
BenchmarkGoSyncMapReadsOnly-8 58604 19748 ns/op 0 B/op 0 allocs/op
6-
BenchmarkGoSyncMapReadsWithWrites-8 52668 22710 ns/op 5776 B/op 535 allocs/op
7-
BenchmarkCornelkMapReadsOnly-8 123502 9597 ns/op 0 B/op 0 allocs/op
8-
BenchmarkCornelkMapReadsWithWrites-8 111313 10913 ns/op 4933 B/op 176 allocs/op
3+
BenchmarkHaxMapReadsOnly-8 145077 8095 ns/op 0 B/op 0 allocs/op
4+
BenchmarkHaxMapReadsWithWrites-8 131116 9229 ns/op 1294 B/op 161 allocs/op
5+
BenchmarkGoSyncMapReadsOnly-8 61634 19733 ns/op 0 B/op 0 allocs/op
6+
BenchmarkGoSyncMapReadsWithWrites-8 54416 22781 ns/op 6188 B/op 573 allocs/op
7+
BenchmarkCornelkMapReadsOnly-8 144688 8296 ns/op 0 B/op 0 allocs/op
8+
BenchmarkCornelkMapReadsWithWrites-8 120948 9539 ns/op 1593 B/op 199 allocs/op
99
PASS
10-
ok command-line-arguments 9.401s
10+
ok command-line-arguments 9.464s
1111
goos: darwin
1212
goarch: arm64
13-
BenchmarkHaxMapReadsOnly-8 133843 8415 ns/op 0 B/op 0 allocs/op
14-
BenchmarkHaxMapReadsWithWrites-8 122829 9961 ns/op 1267 B/op 158 allocs/op
15-
BenchmarkGoSyncMapReadsOnly-8 58078 21267 ns/op 0 B/op 0 allocs/op
16-
BenchmarkGoSyncMapReadsWithWrites-8 49398 23728 ns/op 5634 B/op 522 allocs/op
17-
BenchmarkCornelkMapReadsOnly-8 128107 9769 ns/op 0 B/op 0 allocs/op
18-
BenchmarkCornelkMapReadsWithWrites-8 105570 11630 ns/op 4919 B/op 175 allocs/op
13+
BenchmarkHaxMapReadsOnly-8 140853 8118 ns/op 0 B/op 0 allocs/op
14+
BenchmarkHaxMapReadsWithWrites-8 129410 9128 ns/op 1258 B/op 157 allocs/op
15+
BenchmarkGoSyncMapReadsOnly-8 61000 19594 ns/op 0 B/op 0 allocs/op
16+
BenchmarkGoSyncMapReadsWithWrites-8 54486 22231 ns/op 5956 B/op 552 allocs/op
17+
BenchmarkCornelkMapReadsOnly-8 143888 8617 ns/op 0 B/op 0 allocs/op
18+
BenchmarkCornelkMapReadsWithWrites-8 126195 9634 ns/op 1558 B/op 194 allocs/op
1919
PASS
20-
ok command-line-arguments 8.282s
20+
ok command-line-arguments 8.158s
2121
goos: darwin
2222
goarch: arm64
23-
BenchmarkHaxMapReadsOnly-8 127102 8693 ns/op 0 B/op 0 allocs/op
24-
BenchmarkHaxMapReadsWithWrites-8 108489 10033 ns/op 1247 B/op 155 allocs/op
25-
BenchmarkGoSyncMapReadsOnly-8 54864 22314 ns/op 0 B/op 0 allocs/op
26-
BenchmarkGoSyncMapReadsWithWrites-8 45908 25458 ns/op 6107 B/op 566 allocs/op
27-
BenchmarkCornelkMapReadsOnly-8 111400 10204 ns/op 0 B/op 0 allocs/op
28-
BenchmarkCornelkMapReadsWithWrites-8 102932 11984 ns/op 5277 B/op 188 allocs/op
23+
BenchmarkHaxMapReadsOnly-8 141235 8002 ns/op 0 B/op 0 allocs/op
24+
BenchmarkHaxMapReadsWithWrites-8 126264 9284 ns/op 1279 B/op 159 allocs/op
25+
BenchmarkGoSyncMapReadsOnly-8 60633 19557 ns/op 0 B/op 0 allocs/op
26+
BenchmarkGoSyncMapReadsWithWrites-8 54733 22102 ns/op 6449 B/op 598 allocs/op
27+
BenchmarkCornelkMapReadsOnly-8 143468 8309 ns/op 0 B/op 0 allocs/op
28+
BenchmarkCornelkMapReadsWithWrites-8 125412 9485 ns/op 1426 B/op 178 allocs/op
2929
PASS
30-
ok command-line-arguments 8.099s
30+
ok command-line-arguments 8.048s
3131
goos: darwin
3232
goarch: arm64
33-
BenchmarkHaxMapReadsOnly-8 131020 9175 ns/op 0 B/op 0 allocs/op
34-
BenchmarkHaxMapReadsWithWrites-8 114928 10502 ns/op 1200 B/op 150 allocs/op
35-
BenchmarkGoSyncMapReadsOnly-8 51066 22955 ns/op 0 B/op 0 allocs/op
36-
BenchmarkGoSyncMapReadsWithWrites-8 46172 26133 ns/op 5805 B/op 538 allocs/op
37-
BenchmarkCornelkMapReadsOnly-8 114662 10877 ns/op 0 B/op 0 allocs/op
38-
BenchmarkCornelkMapReadsWithWrites-8 102745 12294 ns/op 4804 B/op 171 allocs/op
33+
BenchmarkHaxMapReadsOnly-8 137673 8010 ns/op 0 B/op 0 allocs/op
34+
BenchmarkHaxMapReadsWithWrites-8 127624 9173 ns/op 1301 B/op 162 allocs/op
35+
BenchmarkGoSyncMapReadsOnly-8 59574 20033 ns/op 0 B/op 0 allocs/op
36+
BenchmarkGoSyncMapReadsWithWrites-8 52813 22995 ns/op 6212 B/op 576 allocs/op
37+
BenchmarkCornelkMapReadsOnly-8 144896 8369 ns/op 0 B/op 0 allocs/op
38+
BenchmarkCornelkMapReadsWithWrites-8 124923 9569 ns/op 1529 B/op 191 allocs/op
3939
PASS
40-
ok command-line-arguments 8.422s
40+
ok command-line-arguments 8.079s
4141
goos: darwin
4242
goarch: arm64
43-
BenchmarkHaxMapReadsOnly-8 126894 9293 ns/op 0 B/op 0 allocs/op
44-
BenchmarkHaxMapReadsWithWrites-8 116582 11131 ns/op 1140 B/op 142 allocs/op
45-
BenchmarkGoSyncMapReadsOnly-8 47098 25391 ns/op 0 B/op 0 allocs/op
46-
BenchmarkGoSyncMapReadsWithWrites-8 44319 30389 ns/op 5234 B/op 485 allocs/op
47-
BenchmarkCornelkMapReadsOnly-8 113659 10723 ns/op 0 B/op 0 allocs/op
48-
BenchmarkCornelkMapReadsWithWrites-8 94192 12842 ns/op 5096 B/op 182 allocs/op
43+
BenchmarkHaxMapReadsOnly-8 137236 8136 ns/op 0 B/op 0 allocs/op
44+
BenchmarkHaxMapReadsWithWrites-8 125703 9417 ns/op 1293 B/op 161 allocs/op
45+
BenchmarkGoSyncMapReadsOnly-8 57702 20964 ns/op 0 B/op 0 allocs/op
46+
BenchmarkGoSyncMapReadsWithWrites-8 50908 23682 ns/op 6165 B/op 571 allocs/op
47+
BenchmarkCornelkMapReadsOnly-8 140324 8921 ns/op 0 B/op 0 allocs/op
48+
BenchmarkCornelkMapReadsWithWrites-8 125131 9878 ns/op 1581 B/op 197 allocs/op
4949
PASS
50-
ok command-line-arguments 8.645s
50+
ok command-line-arguments 8.215s
5151
goos: darwin
5252
goarch: arm64
53-
BenchmarkHaxMapReadsOnly-8 108921 9384 ns/op 0 B/op 0 allocs/op
54-
BenchmarkHaxMapReadsWithWrites-8 108912 10729 ns/op 1269 B/op 158 allocs/op
55-
BenchmarkGoSyncMapReadsOnly-8 51124 24121 ns/op 0 B/op 0 allocs/op
56-
BenchmarkGoSyncMapReadsWithWrites-8 41920 26868 ns/op 6261 B/op 580 allocs/op
57-
BenchmarkCornelkMapReadsOnly-8 107331 10976 ns/op 0 B/op 0 allocs/op
58-
BenchmarkCornelkMapReadsWithWrites-8 91562 12603 ns/op 5278 B/op 188 allocs/op
53+
BenchmarkHaxMapReadsOnly-8 130960 8346 ns/op 0 B/op 0 allocs/op
54+
BenchmarkHaxMapReadsWithWrites-8 122533 9919 ns/op 1313 B/op 164 allocs/op
55+
BenchmarkGoSyncMapReadsOnly-8 57320 21358 ns/op 0 B/op 0 allocs/op
56+
BenchmarkGoSyncMapReadsWithWrites-8 49880 24038 ns/op 6262 B/op 580 allocs/op
57+
BenchmarkCornelkMapReadsOnly-8 125024 8837 ns/op 0 B/op 0 allocs/op
58+
BenchmarkCornelkMapReadsWithWrites-8 119469 9996 ns/op 1530 B/op 191 allocs/op
5959
PASS
60-
ok command-line-arguments 8.330s
60+
ok command-line-arguments 8.140s
6161
goos: darwin
6262
goarch: arm64
63-
BenchmarkHaxMapReadsOnly-8 121893 9528 ns/op 0 B/op 0 allocs/op
64-
BenchmarkHaxMapReadsWithWrites-8 99525 12185 ns/op 1372 B/op 171 allocs/op
65-
BenchmarkGoSyncMapReadsOnly-8 50720 24313 ns/op 0 B/op 0 allocs/op
66-
BenchmarkGoSyncMapReadsWithWrites-8 43544 27485 ns/op 6001 B/op 556 allocs/op
67-
BenchmarkCornelkMapReadsOnly-8 114090 11274 ns/op 0 B/op 0 allocs/op
68-
BenchmarkCornelkMapReadsWithWrites-8 93196 12869 ns/op 5564 B/op 198 allocs/op
63+
BenchmarkHaxMapReadsOnly-8 137308 8563 ns/op 0 B/op 0 allocs/op
64+
BenchmarkHaxMapReadsWithWrites-8 122019 9772 ns/op 1264 B/op 158 allocs/op
65+
BenchmarkGoSyncMapReadsOnly-8 55249 21985 ns/op 0 B/op 0 allocs/op
66+
BenchmarkGoSyncMapReadsWithWrites-8 48141 24734 ns/op 6087 B/op 564 allocs/op
67+
BenchmarkCornelkMapReadsOnly-8 134740 9067 ns/op 0 B/op 0 allocs/op
68+
BenchmarkCornelkMapReadsWithWrites-8 114210 10375 ns/op 1536 B/op 192 allocs/op
6969
PASS
70-
ok command-line-arguments 8.560s
70+
ok command-line-arguments 8.232s
7171
goos: darwin
7272
goarch: arm64
73-
BenchmarkHaxMapReadsOnly-8 105861 9602 ns/op 0 B/op 0 allocs/op
74-
BenchmarkHaxMapReadsWithWrites-8 105476 11153 ns/op 1292 B/op 161 allocs/op
75-
BenchmarkGoSyncMapReadsOnly-8 51057 24087 ns/op 0 B/op 0 allocs/op
76-
BenchmarkGoSyncMapReadsWithWrites-8 43777 27323 ns/op 5751 B/op 533 allocs/op
77-
BenchmarkCornelkMapReadsOnly-8 112531 11759 ns/op 0 B/op 0 allocs/op
78-
BenchmarkCornelkMapReadsWithWrites-8 92540 12959 ns/op 5326 B/op 190 allocs/op
73+
BenchmarkHaxMapReadsOnly-8 137454 8784 ns/op 0 B/op 0 allocs/op
74+
BenchmarkHaxMapReadsWithWrites-8 119094 10060 ns/op 1310 B/op 163 allocs/op
75+
BenchmarkGoSyncMapReadsOnly-8 55574 21927 ns/op 0 B/op 0 allocs/op
76+
BenchmarkGoSyncMapReadsWithWrites-8 48321 24811 ns/op 6327 B/op 586 allocs/op
77+
BenchmarkCornelkMapReadsOnly-8 132772 9157 ns/op 0 B/op 0 allocs/op
78+
BenchmarkCornelkMapReadsWithWrites-8 118539 10348 ns/op 1627 B/op 203 allocs/op
7979
PASS
80-
ok command-line-arguments 8.461s
80+
ok command-line-arguments 8.325s
8181
goos: darwin
8282
goarch: arm64
83-
BenchmarkHaxMapReadsOnly-8 124146 9998 ns/op 0 B/op 0 allocs/op
84-
BenchmarkHaxMapReadsWithWrites-8 113457 11414 ns/op 1349 B/op 168 allocs/op
85-
BenchmarkGoSyncMapReadsOnly-8 49989 25788 ns/op 0 B/op 0 allocs/op
86-
BenchmarkGoSyncMapReadsWithWrites-8 42470 29077 ns/op 5686 B/op 527 allocs/op
87-
BenchmarkCornelkMapReadsOnly-8 106138 13393 ns/op 0 B/op 0 allocs/op
88-
BenchmarkCornelkMapReadsWithWrites-8 93746 13343 ns/op 4812 B/op 171 allocs/op
83+
BenchmarkHaxMapReadsOnly-8 137144 8772 ns/op 0 B/op 0 allocs/op
84+
BenchmarkHaxMapReadsWithWrites-8 116263 10636 ns/op 1296 B/op 162 allocs/op
85+
BenchmarkGoSyncMapReadsOnly-8 53275 22745 ns/op 0 B/op 0 allocs/op
86+
BenchmarkGoSyncMapReadsWithWrites-8 48001 25393 ns/op 6147 B/op 570 allocs/op
87+
BenchmarkCornelkMapReadsOnly-8 129432 9379 ns/op 0 B/op 0 allocs/op
88+
BenchmarkCornelkMapReadsWithWrites-8 112365 10715 ns/op 1585 B/op 198 allocs/op
8989
PASS
90-
ok command-line-arguments 9.940s
90+
ok command-line-arguments 8.366s
9191
goos: darwin
9292
goarch: arm64
93-
BenchmarkHaxMapReadsOnly-8 120586 11043 ns/op 0 B/op 0 allocs/op
94-
BenchmarkHaxMapReadsWithWrites-8 93226 11706 ns/op 1267 B/op 158 allocs/op
95-
BenchmarkGoSyncMapReadsOnly-8 44179 26046 ns/op 0 B/op 0 allocs/op
96-
BenchmarkGoSyncMapReadsWithWrites-8 41589 28890 ns/op 5477 B/op 507 allocs/op
97-
BenchmarkCornelkMapReadsOnly-8 106339 11882 ns/op 0 B/op 0 allocs/op
98-
BenchmarkCornelkMapReadsWithWrites-8 91642 13966 ns/op 5361 B/op 191 allocs/op
93+
BenchmarkHaxMapReadsOnly-8 135720 8840 ns/op 0 B/op 0 allocs/op
94+
BenchmarkHaxMapReadsWithWrites-8 118623 9988 ns/op 1310 B/op 163 allocs/op
95+
BenchmarkGoSyncMapReadsOnly-8 54118 22411 ns/op 0 B/op 0 allocs/op
96+
BenchmarkGoSyncMapReadsWithWrites-8 46650 25482 ns/op 6222 B/op 577 allocs/op
97+
BenchmarkCornelkMapReadsOnly-8 128571 9244 ns/op 0 B/op 0 allocs/op
98+
BenchmarkCornelkMapReadsWithWrites-8 114930 10773 ns/op 1603 B/op 200 allocs/op
9999
PASS
100-
ok command-line-arguments 9.693s
100+
ok command-line-arguments 8.291s
101101
goos: darwin
102102
goarch: arm64
103-
BenchmarkHaxMapReadsOnly-8 105867 10325 ns/op 0 B/op 0 allocs/op
104-
BenchmarkHaxMapReadsWithWrites-8 95413 12104 ns/op 1257 B/op 157 allocs/op
105-
BenchmarkGoSyncMapReadsOnly-8 45840 24487 ns/op 0 B/op 0 allocs/op
106-
BenchmarkGoSyncMapReadsWithWrites-8 44113 28314 ns/op 6442 B/op 597 allocs/op
107-
BenchmarkCornelkMapReadsOnly-8 101728 11894 ns/op 0 B/op 0 allocs/op
108-
BenchmarkCornelkMapReadsWithWrites-8 75547 13291 ns/op 5264 B/op 188 allocs/op
103+
BenchmarkHaxMapReadsOnly-8 136611 8998 ns/op 0 B/op 0 allocs/op
104+
BenchmarkHaxMapReadsWithWrites-8 114464 10041 ns/op 1190 B/op 148 allocs/op
105+
BenchmarkGoSyncMapReadsOnly-8 52758 22574 ns/op 0 B/op 0 allocs/op
106+
BenchmarkGoSyncMapReadsWithWrites-8 47560 25455 ns/op 6202 B/op 575 allocs/op
107+
BenchmarkCornelkMapReadsOnly-8 131094 9685 ns/op 0 B/op 0 allocs/op
108+
BenchmarkCornelkMapReadsWithWrites-8 115082 10618 ns/op 1550 B/op 193 allocs/op
109109
PASS
110-
ok command-line-arguments 8.332s
110+
ok command-line-arguments 8.356s
111111
goos: darwin
112112
goarch: arm64
113-
BenchmarkHaxMapReadsOnly-8 110785 10019 ns/op 0 B/op 0 allocs/op
114-
BenchmarkHaxMapReadsWithWrites-8 104233 11195 ns/op 1214 B/op 151 allocs/op
115-
BenchmarkGoSyncMapReadsOnly-8 49453 24712 ns/op 0 B/op 0 allocs/op
116-
BenchmarkGoSyncMapReadsWithWrites-8 43090 27852 ns/op 5516 B/op 511 allocs/op
117-
BenchmarkCornelkMapReadsOnly-8 111591 11215 ns/op 0 B/op 0 allocs/op
118-
BenchmarkCornelkMapReadsWithWrites-8 93159 12980 ns/op 5205 B/op 185 allocs/op
113+
BenchmarkHaxMapReadsOnly-8 137860 9098 ns/op 0 B/op 0 allocs/op
114+
BenchmarkHaxMapReadsWithWrites-8 117471 10181 ns/op 1272 B/op 159 allocs/op
115+
BenchmarkGoSyncMapReadsOnly-8 49273 22884 ns/op 0 B/op 0 allocs/op
116+
BenchmarkGoSyncMapReadsWithWrites-8 46230 25246 ns/op 6278 B/op 582 allocs/op
117+
BenchmarkCornelkMapReadsOnly-8 129378 9418 ns/op 0 B/op 0 allocs/op
118+
BenchmarkCornelkMapReadsWithWrites-8 114962 11093 ns/op 1654 B/op 206 allocs/op
119119
PASS
120-
ok command-line-arguments 8.459s
120+
ok command-line-arguments 8.337s
121121
goos: darwin
122122
goarch: arm64
123-
BenchmarkHaxMapReadsOnly-8 111686 9951 ns/op 0 B/op 0 allocs/op
124-
BenchmarkHaxMapReadsWithWrites-8 101820 11728 ns/op 1215 B/op 151 allocs/op
125-
BenchmarkGoSyncMapReadsOnly-8 48898 24583 ns/op 0 B/op 0 allocs/op
126-
BenchmarkGoSyncMapReadsWithWrites-8 44281 28699 ns/op 6030 B/op 559 allocs/op
127-
BenchmarkCornelkMapReadsOnly-8 105266 11544 ns/op 0 B/op 0 allocs/op
128-
BenchmarkCornelkMapReadsWithWrites-8 94090 13154 ns/op 5000 B/op 178 allocs/op
123+
BenchmarkHaxMapReadsOnly-8 130134 8972 ns/op 0 B/op 0 allocs/op
124+
BenchmarkHaxMapReadsWithWrites-8 115342 10199 ns/op 1316 B/op 164 allocs/op
125+
BenchmarkGoSyncMapReadsOnly-8 53710 22642 ns/op 0 B/op 0 allocs/op
126+
BenchmarkGoSyncMapReadsWithWrites-8 47560 25430 ns/op 6223 B/op 577 allocs/op
127+
BenchmarkCornelkMapReadsOnly-8 129685 9371 ns/op 0 B/op 0 allocs/op
128+
BenchmarkCornelkMapReadsWithWrites-8 111741 10998 ns/op 1668 B/op 208 allocs/op
129129
PASS
130-
ok command-line-arguments 8.546s
130+
ok command-line-arguments 8.303s
131131
goos: darwin
132132
goarch: arm64
133-
BenchmarkHaxMapReadsOnly-8 113810 9854 ns/op 0 B/op 0 allocs/op
134-
BenchmarkHaxMapReadsWithWrites-8 108961 11367 ns/op 1215 B/op 151 allocs/op
135-
BenchmarkGoSyncMapReadsOnly-8 48178 25148 ns/op 0 B/op 0 allocs/op
136-
BenchmarkGoSyncMapReadsWithWrites-8 36096 30180 ns/op 5603 B/op 519 allocs/op
137-
BenchmarkCornelkMapReadsOnly-8 110091 11485 ns/op 0 B/op 0 allocs/op
138-
BenchmarkCornelkMapReadsWithWrites-8 90997 13253 ns/op 4887 B/op 174 allocs/op
133+
BenchmarkHaxMapReadsOnly-8 138300 9193 ns/op 0 B/op 0 allocs/op
134+
BenchmarkHaxMapReadsWithWrites-8 114590 10291 ns/op 1263 B/op 157 allocs/op
135+
BenchmarkGoSyncMapReadsOnly-8 51279 22838 ns/op 0 B/op 0 allocs/op
136+
BenchmarkGoSyncMapReadsWithWrites-8 47002 25828 ns/op 6508 B/op 603 allocs/op
137+
BenchmarkCornelkMapReadsOnly-8 128064 9550 ns/op 0 B/op 0 allocs/op
138+
BenchmarkCornelkMapReadsWithWrites-8 113583 10770 ns/op 1664 B/op 208 allocs/op
139139
PASS
140-
ok command-line-arguments 8.454s
140+
ok command-line-arguments 8.374s
141141
goos: darwin
142142
goarch: arm64
143-
BenchmarkHaxMapReadsOnly-8 92625 11284 ns/op 0 B/op 0 allocs/op
144-
BenchmarkHaxMapReadsWithWrites-8 89648 12615 ns/op 1258 B/op 157 allocs/op
145-
BenchmarkGoSyncMapReadsOnly-8 45105 27495 ns/op 0 B/op 0 allocs/op
146-
BenchmarkGoSyncMapReadsWithWrites-8 40776 29543 ns/op 5941 B/op 551 allocs/op
147-
BenchmarkCornelkMapReadsOnly-8 107670 11992 ns/op 0 B/op 0 allocs/op
148-
BenchmarkCornelkMapReadsWithWrites-8 81139 14061 ns/op 5309 B/op 189 allocs/op
143+
BenchmarkHaxMapReadsOnly-8 136096 9424 ns/op 0 B/op 0 allocs/op
144+
BenchmarkHaxMapReadsWithWrites-8 112291 10379 ns/op 1268 B/op 158 allocs/op
145+
BenchmarkGoSyncMapReadsOnly-8 53770 22768 ns/op 0 B/op 0 allocs/op
146+
BenchmarkGoSyncMapReadsWithWrites-8 45982 25738 ns/op 6130 B/op 568 allocs/op
147+
BenchmarkCornelkMapReadsOnly-8 124964 9517 ns/op 0 B/op 0 allocs/op
148+
BenchmarkCornelkMapReadsWithWrites-8 114382 10903 ns/op 1580 B/op 197 allocs/op
149149
PASS
150-
ok command-line-arguments 8.477s
150+
ok command-line-arguments 8.385s
151151
goos: darwin
152152
goarch: arm64
153-
BenchmarkHaxMapReadsOnly-8 112261 10391 ns/op 0 B/op 0 allocs/op
154-
BenchmarkHaxMapReadsWithWrites-8 106689 11759 ns/op 1206 B/op 150 allocs/op
155-
BenchmarkGoSyncMapReadsOnly-8 48585 25694 ns/op 0 B/op 0 allocs/op
156-
BenchmarkGoSyncMapReadsWithWrites-8 37974 30183 ns/op 5828 B/op 540 allocs/op
157-
BenchmarkCornelkMapReadsOnly-8 106399 11671 ns/op 0 B/op 0 allocs/op
158-
BenchmarkCornelkMapReadsWithWrites-8 88276 13902 ns/op 4983 B/op 177 allocs/op
153+
BenchmarkHaxMapReadsOnly-8 137358 9054 ns/op 0 B/op 0 allocs/op
154+
BenchmarkHaxMapReadsWithWrites-8 114808 10356 ns/op 1294 B/op 161 allocs/op
155+
BenchmarkGoSyncMapReadsOnly-8 52840 23298 ns/op 0 B/op 0 allocs/op
156+
BenchmarkGoSyncMapReadsWithWrites-8 46246 25655 ns/op 6021 B/op 558 allocs/op
157+
BenchmarkCornelkMapReadsOnly-8 128312 9661 ns/op 0 B/op 0 allocs/op
158+
BenchmarkCornelkMapReadsWithWrites-8 109968 10894 ns/op 1689 B/op 211 allocs/op
159159
PASS
160-
ok command-line-arguments 8.571s
160+
ok command-line-arguments 8.384s
161161
goos: darwin
162162
goarch: arm64
163-
BenchmarkHaxMapReadsOnly-8 116324 10275 ns/op 0 B/op 0 allocs/op
164-
BenchmarkHaxMapReadsWithWrites-8 99028 11690 ns/op 1244 B/op 155 allocs/op
165-
BenchmarkGoSyncMapReadsOnly-8 46360 25382 ns/op 0 B/op 0 allocs/op
166-
BenchmarkGoSyncMapReadsWithWrites-8 41484 29240 ns/op 6207 B/op 575 allocs/op
167-
BenchmarkCornelkMapReadsOnly-8 105748 11860 ns/op 0 B/op 0 allocs/op
168-
BenchmarkCornelkMapReadsWithWrites-8 86810 13953 ns/op 4993 B/op 178 allocs/op
163+
BenchmarkHaxMapReadsOnly-8 136760 9167 ns/op 0 B/op 0 allocs/op
164+
BenchmarkHaxMapReadsWithWrites-8 114876 10511 ns/op 1368 B/op 171 allocs/op
165+
BenchmarkGoSyncMapReadsOnly-8 53091 23129 ns/op 0 B/op 0 allocs/op
166+
BenchmarkGoSyncMapReadsWithWrites-8 46971 25944 ns/op 6382 B/op 591 allocs/op
167+
BenchmarkCornelkMapReadsOnly-8 125469 9789 ns/op 0 B/op 0 allocs/op
168+
BenchmarkCornelkMapReadsWithWrites-8 111015 11008 ns/op 1583 B/op 197 allocs/op
169169
PASS
170-
ok command-line-arguments 8.526s
170+
ok command-line-arguments 8.456s
171171
goos: darwin
172172
goarch: arm64
173-
BenchmarkHaxMapReadsOnly-8 110042 10169 ns/op 0 B/op 0 allocs/op
174-
BenchmarkHaxMapReadsWithWrites-8 103587 11662 ns/op 1237 B/op 154 allocs/op
175-
BenchmarkGoSyncMapReadsOnly-8 45541 25792 ns/op 0 B/op 0 allocs/op
176-
BenchmarkGoSyncMapReadsWithWrites-8 40347 29235 ns/op 6165 B/op 571 allocs/op
177-
BenchmarkCornelkMapReadsOnly-8 103125 11866 ns/op 0 B/op 0 allocs/op
178-
BenchmarkCornelkMapReadsWithWrites-8 87055 13763 ns/op 5422 B/op 193 allocs/op
173+
BenchmarkHaxMapReadsOnly-8 134328 9089 ns/op 0 B/op 0 allocs/op
174+
BenchmarkHaxMapReadsWithWrites-8 115495 10493 ns/op 1276 B/op 159 allocs/op
175+
BenchmarkGoSyncMapReadsOnly-8 52368 23042 ns/op 0 B/op 0 allocs/op
176+
BenchmarkGoSyncMapReadsWithWrites-8 46597 26255 ns/op 6204 B/op 575 allocs/op
177+
BenchmarkCornelkMapReadsOnly-8 126688 9663 ns/op 0 B/op 0 allocs/op
178+
BenchmarkCornelkMapReadsWithWrites-8 111190 10920 ns/op 1672 B/op 209 allocs/op
179179
PASS
180-
ok command-line-arguments 8.446s
180+
ok command-line-arguments 8.399s
181181
goos: darwin
182182
goarch: arm64
183-
BenchmarkHaxMapReadsOnly-8 110598 9942 ns/op 0 B/op 0 allocs/op
184-
BenchmarkHaxMapReadsWithWrites-8 105129 11520 ns/op 1229 B/op 153 allocs/op
185-
BenchmarkGoSyncMapReadsOnly-8 48172 25877 ns/op 0 B/op 0 allocs/op
186-
BenchmarkGoSyncMapReadsWithWrites-8 41655 30006 ns/op 5752 B/op 533 allocs/op
187-
BenchmarkCornelkMapReadsOnly-8 105224 11693 ns/op 0 B/op 0 allocs/op
188-
BenchmarkCornelkMapReadsWithWrites-8 84748 13405 ns/op 4907 B/op 175 allocs/op
183+
BenchmarkHaxMapReadsOnly-8 135180 9144 ns/op 0 B/op 0 allocs/op
184+
BenchmarkHaxMapReadsWithWrites-8 101612 10411 ns/op 1269 B/op 158 allocs/op
185+
BenchmarkGoSyncMapReadsOnly-8 52978 23330 ns/op 0 B/op 0 allocs/op
186+
BenchmarkGoSyncMapReadsWithWrites-8 46298 26423 ns/op 6072 B/op 563 allocs/op
187+
BenchmarkCornelkMapReadsOnly-8 127262 9580 ns/op 0 B/op 0 allocs/op
188+
BenchmarkCornelkMapReadsWithWrites-8 112708 10849 ns/op 1533 B/op 191 allocs/op
189189
PASS
190-
ok command-line-arguments 8.646s
190+
ok command-line-arguments 8.307s
191191
goos: darwin
192192
goarch: arm64
193-
BenchmarkHaxMapReadsOnly-8 118464 10087 ns/op 0 B/op 0 allocs/op
194-
BenchmarkHaxMapReadsWithWrites-8 101415 11560 ns/op 1207 B/op 150 allocs/op
195-
BenchmarkGoSyncMapReadsOnly-8 46292 25674 ns/op 0 B/op 0 allocs/op
196-
BenchmarkGoSyncMapReadsWithWrites-8 40149 28945 ns/op 5597 B/op 519 allocs/op
197-
BenchmarkCornelkMapReadsOnly-8 99123 11633 ns/op 0 B/op 0 allocs/op
198-
BenchmarkCornelkMapReadsWithWrites-8 82366 13479 ns/op 4795 B/op 171 allocs/op
193+
BenchmarkHaxMapReadsOnly-8 137830 9113 ns/op 0 B/op 0 allocs/op
194+
BenchmarkHaxMapReadsWithWrites-8 111405 10534 ns/op 1336 B/op 167 allocs/op
195+
BenchmarkGoSyncMapReadsOnly-8 53090 23021 ns/op 0 B/op 0 allocs/op
196+
BenchmarkGoSyncMapReadsWithWrites-8 46200 26491 ns/op 5920 B/op 549 allocs/op
197+
BenchmarkCornelkMapReadsOnly-8 126793 9511 ns/op 0 B/op 0 allocs/op
198+
BenchmarkCornelkMapReadsWithWrites-8 114080 10859 ns/op 1659 B/op 207 allocs/op
199199
PASS
200-
ok command-line-arguments 9.495s
200+
ok command-line-arguments 8.412s

‎tests/e2e_test.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package test
22

33
import (
44
"fmt"
5+
"math"
56
"strconv"
67
"sync"
78
"sync/atomic"
@@ -88,7 +89,9 @@ func TestGrow(t *testing.T) {
8889
m := haxmap.New[uint, uint]()
8990
m.Grow(63)
9091
d := m.Datamap.Load()
91-
if d.Keyshifts != 58 {
92+
log := int(math.Log2(64))
93+
expectedSize := uintptr(strconv.IntSize - log)
94+
if d.Keyshifts != expectedSize {
9295
t.Errorf("Grow operation did not result in correct internal map data structure, Dump -> %#v", d)
9396
}
9497
}

0 commit comments

Comments
 (0)
Please sign in to comment.