Benchmarks for sequence data structures: lists, vectors, etc.
For all benchmarks:
For specific benchmarks:
$ stack bench :time --benchmark-arguments Consing
Results are ordered by least to most time.
Name |
10 |
100 |
1000 |
10000 |
Data.List |
3.457 ns |
4.099 ns |
3.425 ns |
0.003 μs |
Data.DList |
5.757 ns |
5.268 ns |
5.568 ns |
0.005 μs |
Data.Acc |
5.601 ns |
6.143 ns |
5.883 ns |
0.006 μs |
Data.Sequence |
7.249 ns |
9.292 ns |
7.571 ns |
0.008 μs |
Data.RRBVector |
23.07 ns |
60.90 ns |
63.95 ns |
0.070 μs |
Data.Vector.Storable |
16.10 ns |
44.17 ns |
236.0 ns |
2.487 μs |
Data.Vector.Unboxed |
14.35 ns |
58.29 ns |
233.6 ns |
2.504 μs |
Data.Vector |
34.39 ns |
93.55 ns |
749.3 ns |
7.583 μs |
Name |
10 |
100 |
1000 |
10000 |
Data.DList |
5.532 ns |
5.019 ns |
6.397 ns |
0.006 μs |
Data.Acc |
5.913 ns |
7.140 ns |
8.277 ns |
0.006 μs |
Data.Sequence |
7.285 ns |
7.183 ns |
7.224 ns |
0.007 μs |
Data.RRBVector |
22.92 ns |
60.99 ns |
54.70 ns |
0.055 μs |
Data.Vector.Unboxed |
15.75 ns |
45.87 ns |
236.3 ns |
2.458 μs |
Data.Vector.Storable |
15.35 ns |
50.05 ns |
309.1 ns |
2.401 μs |
Data.Vector |
27.68 ns |
88.50 ns |
741.3 ns |
8.582 μs |
Name |
10 |
100 |
1000 |
10000 |
Data.Vector.Storable |
6.634 ns |
7.380 ns |
6.404 ns |
0.006 μs |
Data.Vector |
6.851 ns |
9.825 ns |
12.79 ns |
0.007 μs |
Data.Vector.Unboxed |
7.235 ns |
8.447 ns |
15.47 ns |
0.008 μs |
Data.Massiv.Array |
11.08 ns |
14.58 ns |
9.754 ns |
0.009 μs |
Data.RRBVector |
16.67 ns |
23.26 ns |
13.57 ns |
0.014 μs |
Data.Sequence |
25.14 ns |
48.31 ns |
66.50 ns |
0.024 μs |
Data.List |
17.55 ns |
213.3 ns |
3577 ns |
27.82 μs |
Name |
10 |
100 |
1000 |
10000 |
Data.DList |
8.959 ns |
8.967 ns |
0.022 μs |
0.015 μs |
Data.Acc |
9.058 ns |
13.44 ns |
0.021 μs |
0.017 μs |
Data.Sequence |
44.08 ns |
102.0 ns |
0.234 μs |
0.414 μs |
Data.Vector.Unboxed |
24.02 ns |
69.99 ns |
0.571 μs |
6.627 μs |
Data.Vector.Storable |
24.38 ns |
79.54 ns |
0.580 μs |
6.706 μs |
Data.RRBVector |
45.98 ns |
705.1 ns |
3.848 μs |
6.971 μs |
Data.Vector |
40.22 ns |
164.6 ns |
1.993 μs |
23.25 μs |
Data.List |
72.52 ns |
781.1 ns |
15.43 μs |
192.0 μs |
Name |
10 |
100 |
1000 |
10000 |
Data.Vector.Storable |
8.156 ns |
8.277 ns |
0.009 μs |
0.009 μs |
Data.Sequence |
9.241 ns |
8.856 ns |
0.010 μs |
0.009 μs |
Data.RRBVector |
9.678 ns |
9.383 ns |
0.009 μs |
0.010 μs |
Data.Vector |
10.54 ns |
9.682 ns |
0.010 μs |
0.010 μs |
Data.Vector.Unboxed |
10.72 ns |
9.999 ns |
0.010 μs |
0.010 μs |
Data.Massiv.Array |
10.46 ns |
10.20 ns |
0.010 μs |
0.011 μs |
Data.List |
21.64 ns |
185.4 ns |
2.197 μs |
27.09 μs |
Data.DList |
132.4 ns |
956.7 ns |
9.282 μs |
95.80 μs |
Data.Acc |
122.5 ns |
1295 ns |
13.69 μs |
190.7 μs |
Name |
10 |
100 |
1000 |
10000 |
Data.Vector.Unboxed |
85.88 ns |
7.150 μs |
136.4 μs |
2.360 ms |
Data.Vector.Storable |
73.52 ns |
6.466 μs |
142.7 μs |
2.445 ms |
Data.Vector |
306.2 ns |
8.012 μs |
169.8 μs |
3.241 ms |
Data.Sequence |
980.3 ns |
14.55 μs |
295.1 μs |
7.430 ms |
Data.List |
502.1 ns |
15.58 μs |
288.9 μs |
9.445 ms |
Name |
10 |
100 |
1000 |
10000 |
Data.Vector.Unboxed |
32.34 ns |
96.80 ns |
0.532 μs |
3.522 μs |
Data.Vector.Storable |
36.31 ns |
110.2 ns |
0.474 μs |
4.451 μs |
Data.RRBVector |
263.3 ns |
460.7 ns |
3.015 μs |
33.00 μs |
Data.Vector |
87.69 ns |
739.2 ns |
3.742 μs |
36.52 μs |
Data.Sequence |
93.59 ns |
731.2 ns |
5.813 μs |
56.32 μs |
Data.List |
114.2 ns |
2300 ns |
9.543 μs |
80.01 μs |
Data.DList |
163.2 ns |
2108 ns |
10.40 μs |
92.43 μs |
Name |
10 |
100 |
1000 |
10000 |
Data.Vector.Storable |
16.02 ns |
0.081 μs |
0.769 μs |
8.157 μs |
Data.Massiv.Array |
39.87 ns |
0.090 μs |
0.782 μs |
8.697 μs |
Data.Vector.Unboxed |
17.54 ns |
0.096 μs |
0.842 μs |
9.815 μs |
Data.Vector |
26.36 ns |
0.202 μs |
2.086 μs |
21.78 μs |
Data.List |
26.50 ns |
0.290 μs |
2.903 μs |
29.08 μs |
Data.RRBVector |
111.4 ns |
1.095 μs |
12.00 μs |
122.6 μs |
Data.DList |
231.5 ns |
2.109 μs |
25.42 μs |
384.9 μs |
Data.Sequence |
385.4 ns |
3.662 μs |
49.03 μs |
476.3 μs |
Data.Acc |
383.4 ns |
3.811 μs |
45.25 μs |
813.3 μs |
Name |
10 |
100 |
1000 |
10000 |
Data.Vector.Storable |
16.40 ns |
0.102 μs |
0.771 μs |
7.069 μs |
Data.Massiv.Array |
39.29 ns |
0.105 μs |
0.793 μs |
7.955 μs |
Data.Vector.Unboxed |
24.51 ns |
0.132 μs |
1.126 μs |
11.23 μs |
Data.Vector |
29.32 ns |
0.208 μs |
1.919 μs |
18.79 μs |
Data.List |
30.56 ns |
0.341 μs |
2.867 μs |
29.62 μs |
Data.RRBVector |
110.4 ns |
1.111 μs |
11.29 μs |
132.4 μs |
Data.DList |
256.9 ns |
4.532 μs |
17.41 μs |
246.5 μs |
Data.Sequence |
275.2 ns |
3.133 μs |
43.81 μs |
449.9 μs |
Data.Acc |
353.5 ns |
3.778 μs |
40.18 μs |
977.2 μs |
Name |
1 |
100 |
1000 |
10000 |
Data.Vector.Unboxed |
68.01 μs |
58.17 μs |
70.60 μs |
56.90 μs |
Data.Vector |
101.1 μs |
90.79 μs |
86.63 μs |
87.79 μs |
Data.Vector.Storable |
119.4 μs |
100.7 μs |
106.2 μs |
95.62 μs |
Data.List |
102.6 μs |
148.6 μs |
148.8 μs |
99.55 μs |
Data.Sequence |
436.2 μs |
315.9 μs |
265.4 μs |
298.9 μs |
Name |
1 |
100 |
1000 |
10000 |
Data.Vector.Unboxed |
70.23 μs |
119.1 μs |
95.71 μs |
72.42 μs |
Data.Vector.Storable |
122.9 μs |
166.2 μs |
114.3 μs |
130.1 μs |
Data.Vector |
188.4 μs |
179.2 μs |
342.2 μs |
222.0 μs |