@@ -28,134 +28,6 @@ Data.HashMap.Strict.insert mempty 64 0 OK
28
28
Data.HashMap.Lazy.insert mempty 48 0 OK
29
29
```
30
30
31
- ```
32
- benchmarking InsertInt/Data.Map.Lazy 0..10
33
- time 591.1 ns (587.1 ns .. 595.4 ns)
34
- 0.999 R² (0.999 R² .. 1.000 R²)
35
- mean 592.4 ns (588.8 ns .. 597.4 ns)
36
- std dev 14.50 ns (11.25 ns .. 17.80 ns)
37
- variance introduced by outliers: 33% (moderately inflated)
38
-
39
- benchmarking InsertInt/Data.Map.Strict 0..10
40
- time 657.2 ns (652.3 ns .. 663.1 ns)
41
- 0.999 R² (0.999 R² .. 1.000 R²)
42
- mean 660.6 ns (655.8 ns .. 666.1 ns)
43
- std dev 17.58 ns (14.79 ns .. 22.62 ns)
44
- variance introduced by outliers: 36% (moderately inflated)
45
-
46
- benchmarking InsertInt/Data.HashMap.Lazy 0..10
47
- time 494.1 ns (490.0 ns .. 499.1 ns)
48
- 0.999 R² (0.999 R² .. 1.000 R²)
49
- mean 496.7 ns (491.9 ns .. 504.7 ns)
50
- std dev 20.59 ns (14.47 ns .. 33.23 ns)
51
- variance introduced by outliers: 59% (severely inflated)
52
-
53
- benchmarking InsertInt/Data.HashMap.Strict 0..10
54
- time 506.7 ns (502.1 ns .. 512.3 ns)
55
- 0.999 R² (0.999 R² .. 1.000 R²)
56
- mean 508.3 ns (503.8 ns .. 514.3 ns)
57
- std dev 17.11 ns (13.21 ns .. 24.94 ns)
58
- variance introduced by outliers: 48% (moderately inflated)
59
-
60
- benchmarking InsertInt/Data.IntMap.Lazy 0..10
61
- time 238.0 ns (236.1 ns .. 239.8 ns)
62
- 0.999 R² (0.999 R² .. 1.000 R²)
63
- mean 236.8 ns (235.3 ns .. 238.6 ns)
64
- std dev 5.790 ns (4.880 ns .. 6.899 ns)
65
- variance introduced by outliers: 34% (moderately inflated)
66
-
67
- benchmarking InsertInt/Data.IntMap.Strict 0..10
68
- time 308.8 ns (305.8 ns .. 311.8 ns)
69
- 0.999 R² (0.999 R² .. 0.999 R²)
70
- mean 310.3 ns (307.1 ns .. 314.1 ns)
71
- std dev 11.70 ns (9.412 ns .. 15.33 ns)
72
- variance introduced by outliers: 55% (severely inflated)
73
-
74
- benchmarking InsertInt/Data.Map.Lazy 0..1000
75
- time 242.5 μs (240.1 μs .. 244.8 μs)
76
- 0.999 R² (0.999 R² .. 0.999 R²)
77
- mean 243.2 μs (241.5 μs .. 245.4 μs)
78
- std dev 6.383 μs (4.986 μs .. 8.818 μs)
79
- variance introduced by outliers: 20% (moderately inflated)
80
-
81
- benchmarking InsertInt/Data.Map.Strict 0..1000
82
- time 265.2 μs (262.9 μs .. 267.3 μs)
83
- 0.999 R² (0.999 R² .. 1.000 R²)
84
- mean 264.8 μs (263.1 μs .. 267.4 μs)
85
- std dev 7.092 μs (4.892 μs .. 9.728 μs)
86
- variance introduced by outliers: 21% (moderately inflated)
87
-
88
- benchmarking InsertInt/Data.HashMap.Lazy 0..1000
89
- time 103.9 μs (102.9 μs .. 104.9 μs)
90
- 0.999 R² (0.999 R² .. 1.000 R²)
91
- mean 103.4 μs (102.7 μs .. 104.4 μs)
92
- std dev 2.938 μs (2.214 μs .. 4.355 μs)
93
- variance introduced by outliers: 26% (moderately inflated)
94
-
95
- benchmarking InsertInt/Data.HashMap.Strict 0..1000
96
- time 102.9 μs (101.6 μs .. 104.0 μs)
97
- 0.999 R² (0.999 R² .. 1.000 R²)
98
- mean 102.8 μs (102.1 μs .. 104.1 μs)
99
- std dev 3.350 μs (2.288 μs .. 5.204 μs)
100
- variance introduced by outliers: 31% (moderately inflated)
101
-
102
- benchmarking InsertInt/Data.IntMap.Lazy 0..1000
103
- time 54.51 μs (54.13 μs .. 54.91 μs)
104
- 0.999 R² (0.999 R² .. 1.000 R²)
105
- mean 54.73 μs (54.26 μs .. 55.55 μs)
106
- std dev 2.021 μs (1.261 μs .. 2.908 μs)
107
- variance introduced by outliers: 40% (moderately inflated)
108
-
109
- benchmarking InsertInt/Data.IntMap.Strict 0..1000
110
- time 64.04 μs (63.38 μs .. 64.74 μs)
111
- 0.999 R² (0.999 R² .. 1.000 R²)
112
- mean 63.61 μs (63.27 μs .. 64.15 μs)
113
- std dev 1.404 μs (1.135 μs .. 1.746 μs)
114
- variance introduced by outliers: 18% (moderately inflated)
115
-
116
- benchmarking InsertInt/Data.Map.Lazy 0..10000
117
- time 4.146 ms (4.090 ms .. 4.208 ms)
118
- 0.998 R² (0.996 R² .. 0.999 R²)
119
- mean 4.211 ms (4.169 ms .. 4.269 ms)
120
- std dev 162.0 μs (123.4 μs .. 210.4 μs)
121
- variance introduced by outliers: 19% (moderately inflated)
122
-
123
- benchmarking InsertInt/Data.Map.Strict 0..10000
124
- time 4.621 ms (4.568 ms .. 4.682 ms)
125
- 0.999 R² (0.997 R² .. 0.999 R²)
126
- mean 4.580 ms (4.542 ms .. 4.628 ms)
127
- std dev 132.7 μs (104.9 μs .. 190.4 μs)
128
- variance introduced by outliers: 11% (moderately inflated)
129
-
130
- benchmarking InsertInt/Data.HashMap.Lazy 0..10000
131
- time 3.675 ms (3.635 ms .. 3.707 ms)
132
- 0.999 R² (0.998 R² .. 0.999 R²)
133
- mean 3.703 ms (3.667 ms .. 3.773 ms)
134
- std dev 154.8 μs (84.93 μs .. 270.2 μs)
135
- variance introduced by outliers: 23% (moderately inflated)
136
-
137
- benchmarking InsertInt/Data.HashMap.Strict 0..10000
138
- time 3.768 ms (3.692 ms .. 3.867 ms)
139
- 0.996 R² (0.994 R² .. 0.998 R²)
140
- mean 3.925 ms (3.869 ms .. 3.997 ms)
141
- std dev 198.6 μs (150.2 μs .. 271.4 μs)
142
- variance introduced by outliers: 30% (moderately inflated)
143
-
144
- benchmarking InsertInt/Data.IntMap.Lazy 0..10000
145
- time 1.734 ms (1.710 ms .. 1.760 ms)
146
- 0.996 R² (0.994 R² .. 0.998 R²)
147
- mean 1.845 ms (1.807 ms .. 1.894 ms)
148
- std dev 145.9 μs (115.2 μs .. 185.0 μs)
149
- variance introduced by outliers: 58% (severely inflated)
150
-
151
- benchmarking InsertInt/Data.IntMap.Strict 0..10000
152
- time 1.885 ms (1.864 ms .. 1.907 ms)
153
- 0.999 R² (0.998 R² .. 0.999 R²)
154
- mean 1.895 ms (1.878 ms .. 1.934 ms)
155
- std dev 86.84 μs (40.09 μs .. 168.2 μs)
156
- variance introduced by outliers: 31% (moderately inflated)
157
- ```
158
-
159
31
## From List Int keys
160
32
161
33
```
@@ -168,153 +40,36 @@ Data.HashMap.Strict.fromList (1 million) 161,155,384 314 OK
168
40
Data.HashMap.Lazy.fromList (1 million) 161,155,384 314 OK
169
41
```
170
42
171
- ## From List ByteString keys (monotonic)
43
+ <!-- RESULTS -->
172
44
173
- The keys are numbers 1..10000 increasing, which gives "regular" keys,
174
- offering an advantage to a trie data structure.
45
+ ## Insert Int (Randomized)
175
46
176
- ```
177
- benchmarking FromListByteStringMonotonic/Data.Map.Lazy 0..10000
178
- time 6.081 ms (6.001 ms .. 6.148 ms)
179
- 0.999 R² (0.999 R² .. 0.999 R²)
180
- mean 6.162 ms (6.120 ms .. 6.219 ms)
181
- std dev 152.6 μs (119.6 μs .. 232.6 μs)
182
-
183
- benchmarking FromListByteStringMonotonic/Data.Map.Strict 0..10000
184
- time 6.509 ms (6.408 ms .. 6.611 ms)
185
- 0.998 R² (0.997 R² .. 0.999 R²)
186
- mean 6.505 ms (6.451 ms .. 6.575 ms)
187
- std dev 178.7 μs (139.0 μs .. 227.1 μs)
188
- variance introduced by outliers: 10% (moderately inflated)
189
-
190
- benchmarking FromListByteStringMonotonic/Data.HashMap.Lazy 0..10000
191
- time 3.250 ms (3.183 ms .. 3.304 ms)
192
- 0.998 R² (0.997 R² .. 0.999 R²)
193
- mean 3.202 ms (3.174 ms .. 3.241 ms)
194
- std dev 106.7 μs (87.50 μs .. 133.1 μs)
195
- variance introduced by outliers: 17% (moderately inflated)
196
-
197
- benchmarking FromListByteStringMonotonic/Data.HashMap.Strict 0..10000
198
- time 3.245 ms (3.198 ms .. 3.298 ms)
199
- 0.998 R² (0.996 R² .. 0.999 R²)
200
- mean 3.254 ms (3.223 ms .. 3.289 ms)
201
- std dev 107.3 μs (82.26 μs .. 136.6 μs)
202
- variance introduced by outliers: 16% (moderately inflated)
203
-
204
- benchmarking FromListByteStringMonotonic/Data.Trie 0..10000
205
- time 15.20 ms (15.01 ms .. 15.37 ms)
206
- 0.999 R² (0.998 R² .. 1.000 R²)
207
- mean 15.45 ms (15.32 ms .. 15.59 ms)
208
- std dev 343.1 μs (257.2 μs .. 453.6 μs)
209
- ```
210
-
211
- ## From List ByteString keys (randomized)
212
-
213
- Keys are random numbers, a trie may yield worse performance the more
214
- random the keys are.
215
-
216
- ```
217
- benchmarking FromListByteStringRandomized/Data.Map.Lazy 0..10
218
- time 821.1 ns (812.8 ns .. 830.3 ns)
219
- 0.999 R² (0.999 R² .. 1.000 R²)
220
- mean 820.2 ns (814.2 ns .. 829.9 ns)
221
- std dev 25.32 ns (19.41 ns .. 33.41 ns)
222
- variance introduced by outliers: 43% (moderately inflated)
47
+ | Name| 10| 100| 1000| 10000|
48
+ | ---| ---| ---| ---| ---|
49
+ | Data.Map.Lazy| 607.1 ns| 11.91 μs| 247.7 μs| 4.226 ms|
50
+ | Data.Map.Strict| 726.2 ns| 13.69 μs| 269.1 μs| 4.575 ms|
51
+ | Data.HashMap.Lazy| 534.0 ns| 6.706 μs| 104.1 μs| 3.628 ms|
52
+ | Data.HashMap.Strict| 525.9 ns| 6.644 μs| 103.6 μs| 3.637 ms|
53
+ | Data.IntMap.Lazy| 261.5 ns| 3.796 μs| 55.55 μs| 1.788 ms|
54
+ | Data.IntMap.Strict| 314.8 ns| 4.558 μs| 66.16 μs| 1.943 ms|
223
55
224
- benchmarking FromListByteStringRandomized/Data.Map.Strict 0..10
225
- time 881.1 ns (875.0 ns .. 887.6 ns)
226
- 1.000 R² (0.999 R² .. 1.000 R²)
227
- mean 884.9 ns (879.4 ns .. 893.5 ns)
228
- std dev 22.93 ns (17.52 ns .. 31.96 ns)
229
- variance introduced by outliers: 35% (moderately inflated)
56
+ ## FromList ByteString (Monotonic)
230
57
231
- benchmarking FromListByteStringRandomized/Data.HashMap.Lazy 0..10
232
- time 814.4 ns (808.7 ns .. 820.9 ns)
233
- 1.000 R² (0.999 R² .. 1.000 R²)
234
- mean 816.8 ns (812.0 ns .. 823.6 ns)
235
- std dev 18.24 ns (14.08 ns .. 21.98 ns)
236
- variance introduced by outliers: 28% (moderately inflated)
58
+ | Name| 10000|
59
+ | ---| ---|
60
+ | Data.Map.Lazy| 6.214 ms|
61
+ | Data.Map.Strict| 6.425 ms|
62
+ | Data.HashMap.Lazy| 3.198 ms|
63
+ | Data.HashMap.Strict| 3.240 ms|
64
+ | Data.Trie| 15.80 ms|
237
65
238
- benchmarking FromListByteStringRandomized/Data.HashMap.Strict 0..10
239
- time 854.1 ns (847.8 ns .. 861.0 ns)
240
- 1.000 R² (0.999 R² .. 1.000 R²)
241
- mean 857.9 ns (850.7 ns .. 867.4 ns)
242
- std dev 27.76 ns (21.83 ns .. 35.41 ns)
243
- variance introduced by outliers: 45% (moderately inflated)
66
+ ## FromList ByteString (Randomized)
244
67
245
- benchmarking FromListByteStringRandomized/Data.Trie 0..10
246
- time 1.238 μs (1.211 μs .. 1.264 μs)
247
- 0.998 R² (0.997 R² .. 0.999 R²)
248
- mean 1.218 μs (1.207 μs .. 1.236 μs)
249
- std dev 46.38 ns (35.85 ns .. 60.34 ns)
250
- variance introduced by outliers: 53% (severely inflated)
68
+ | Name| 10| 100| 1000| 10000|
69
+ | ---| ---| ---| ---| ---|
70
+ | Data.Map.Lazy| 802.2 ns| 17.19 μs| 361.8 μs| 8.774 ms|
71
+ | Data.Map.Strict| 866.4 ns| 18.31 μs| 370.9 μs| 8.919 ms|
72
+ | Data.HashMap.Lazy| 819.2 ns| 10.54 μs| 147.2 μs| 3.784 ms|
73
+ | Data.HashMap.Strict| 871.5 ns| 10.70 μs| 149.0 μs| 3.801 ms|
74
+ | Data.Trie| 1182 ns| 24.94 μs| 1174 μs| 25.13 ms|
251
75
252
- benchmarking FromListByteStringRandomized/Data.Map.Lazy 0..1000
253
- time 358.2 μs (355.9 μs .. 360.3 μs)
254
- 1.000 R² (0.999 R² .. 1.000 R²)
255
- mean 355.5 μs (353.9 μs .. 357.7 μs)
256
- std dev 6.422 μs (4.688 μs .. 10.13 μs)
257
- variance introduced by outliers: 10% (moderately inflated)
258
-
259
- benchmarking FromListByteStringRandomized/Data.Map.Strict 0..1000
260
- time 378.9 μs (376.4 μs .. 381.6 μs)
261
- 0.999 R² (0.999 R² .. 1.000 R²)
262
- mean 382.5 μs (379.4 μs .. 387.2 μs)
263
- std dev 12.72 μs (9.445 μs .. 17.87 μs)
264
- variance introduced by outliers: 27% (moderately inflated)
265
-
266
- benchmarking FromListByteStringRandomized/Data.HashMap.Lazy 0..1000
267
- time 144.8 μs (143.9 μs .. 145.9 μs)
268
- 0.999 R² (0.999 R² .. 1.000 R²)
269
- mean 144.7 μs (143.9 μs .. 146.2 μs)
270
- std dev 3.996 μs (1.739 μs .. 6.579 μs)
271
- variance introduced by outliers: 24% (moderately inflated)
272
-
273
- benchmarking FromListByteStringRandomized/Data.HashMap.Strict 0..1000
274
- time 148.4 μs (146.9 μs .. 149.8 μs)
275
- 0.999 R² (0.999 R² .. 1.000 R²)
276
- mean 147.2 μs (146.5 μs .. 148.4 μs)
277
- std dev 3.305 μs (2.319 μs .. 4.827 μs)
278
- variance introduced by outliers: 17% (moderately inflated)
279
-
280
- benchmarking FromListByteStringRandomized/Data.Trie 0..1000
281
- time 1.187 ms (1.178 ms .. 1.197 ms)
282
- 0.999 R² (0.999 R² .. 1.000 R²)
283
- mean 1.198 ms (1.190 ms .. 1.210 ms)
284
- std dev 31.13 μs (25.08 μs .. 39.37 μs)
285
- variance introduced by outliers: 14% (moderately inflated)
286
-
287
- benchmarking FromListByteStringRandomized/Data.Map.Lazy 0..10000
288
- time 8.654 ms (8.528 ms .. 8.789 ms)
289
- 0.997 R² (0.994 R² .. 0.999 R²)
290
- mean 8.869 ms (8.746 ms .. 9.095 ms)
291
- std dev 478.0 μs (276.3 μs .. 772.7 μs)
292
- variance introduced by outliers: 27% (moderately inflated)
293
-
294
- benchmarking FromListByteStringRandomized/Data.Map.Strict 0..10000
295
- time 8.876 ms (8.733 ms .. 9.024 ms)
296
- 0.998 R² (0.997 R² .. 0.999 R²)
297
- mean 9.059 ms (8.975 ms .. 9.202 ms)
298
- std dev 302.7 μs (187.8 μs .. 530.6 μs)
299
- variance introduced by outliers: 12% (moderately inflated)
300
-
301
- benchmarking FromListByteStringRandomized/Data.HashMap.Lazy 0..10000
302
- time 3.617 ms (3.595 ms .. 3.643 ms)
303
- 1.000 R² (0.999 R² .. 1.000 R²)
304
- mean 3.671 ms (3.649 ms .. 3.706 ms)
305
- std dev 90.24 μs (61.66 μs .. 140.4 μs)
306
- variance introduced by outliers: 10% (moderately inflated)
307
-
308
- benchmarking FromListByteStringRandomized/Data.HashMap.Strict 0..10000
309
- time 3.735 ms (3.682 ms .. 3.782 ms)
310
- 0.999 R² (0.998 R² .. 0.999 R²)
311
- mean 3.749 ms (3.709 ms .. 3.787 ms)
312
- std dev 128.4 μs (103.7 μs .. 163.3 μs)
313
- variance introduced by outliers: 17% (moderately inflated)
314
-
315
- benchmarking FromListByteStringRandomized/Data.Trie 0..10000
316
- time 23.94 ms (23.62 ms .. 24.34 ms)
317
- 0.999 R² (0.997 R² .. 1.000 R²)
318
- mean 24.63 ms (24.34 ms .. 25.09 ms)
319
- std dev 779.2 μs (521.1 μs .. 1.177 ms)
320
- ```
0 commit comments