@@ -18,107 +18,131 @@ For specific benchmarks:
18
18
19
19
| Name| 10| 100| 1000| 10000|
20
20
| ---| ---| ---| ---| ---|
21
- | Data.List| 3.524 ns| 3.526 ns| 3.551 ns| 0.004 μs|
22
- | Data.Vector| 24.67 ns| 86.82 ns| 732.4 ns| 7.387 μs|
23
- | Data.Vector.Unboxed| 14.60 ns| 34.57 ns| 229.6 ns| 2.503 μs|
24
- | Data.Vector.Storable| 16.73 ns| 43.17 ns| 233.3 ns| 2.471 μs|
25
- | Data.Sequence| 7.135 ns| 7.490 ns| 7.401 ns| 0.007 μs|
26
- | Data.RRBVector| 26.61 ns| 72.17 ns| 72.42 ns| 0.078 μs|
21
+ | Data.List| 3.457 ns| 4.099 ns| 3.425 ns| 0.003 μs|
22
+ | Data.DList| 5.757 ns| 5.268 ns| 5.568 ns| 0.005 μs|
23
+ | Data.Vector| 34.39 ns| 93.55 ns| 749.3 ns| 7.583 μs|
24
+ | Data.Vector.Unboxed| 14.35 ns| 58.29 ns| 233.6 ns| 2.504 μs|
25
+ | Data.Vector.Storable| 16.10 ns| 44.17 ns| 236.0 ns| 2.487 μs|
26
+ | Data.Sequence| 7.249 ns| 9.292 ns| 7.571 ns| 0.008 μs|
27
+ | Data.RRBVector| 23.07 ns| 60.90 ns| 63.95 ns| 0.070 μs|
28
+ | Data.Acc| 5.601 ns| 6.143 ns| 5.883 ns| 0.006 μs|
29
+
30
+ ## Snocing
31
+
32
+ | Name| 10| 100| 1000| 10000|
33
+ | ---| ---| ---| ---| ---|
34
+ | Data.DList| 5.532 ns| 5.019 ns| 6.397 ns| 0.006 μs|
35
+ | Data.Vector| 27.68 ns| 88.50 ns| 741.3 ns| 8.582 μs|
36
+ | Data.Vector.Unboxed| 15.75 ns| 45.87 ns| 236.3 ns| 2.458 μs|
37
+ | Data.Vector.Storable| 15.35 ns| 50.05 ns| 309.1 ns| 2.401 μs|
38
+ | Data.Sequence| 7.285 ns| 7.183 ns| 7.224 ns| 0.007 μs|
39
+ | Data.RRBVector| 22.92 ns| 60.99 ns| 54.70 ns| 0.055 μs|
40
+ | Data.Acc| 5.913 ns| 7.140 ns| 8.277 ns| 0.006 μs|
27
41
28
42
## Indexing
29
43
30
44
| Name| 10| 100| 1000| 10000|
31
45
| ---| ---| ---| ---| ---|
32
- | Data.List| 17.73 ns| 146.0 ns| 1722 ns| 21.13 μs|
33
- | Data.Vector| 7.248 ns| 7.236 ns| 7.218 ns| 0.007 μs|
34
- | Data.Vector.Unboxed| 7.880 ns| 7.880 ns| 7.882 ns| 0.008 μs|
35
- | Data.Vector.Storable| 7.433 ns| 7.430 ns| 7.427 ns| 0.007 μs|
36
- | Data.Sequence| 26.05 ns| 49.26 ns| 76.18 ns| 0.028 μs|
37
- | Data.Massiv.Array| 10.69 ns| 10.65 ns| 10.69 ns| 0.011 μs|
38
- | Data.RRBVector| 16.48 ns| 16.42 ns| 16.43 ns| 0.016 μs|
46
+ | Data.List| 17.55 ns| 213.3 ns| 3577 ns| 27.82 μs|
47
+ | Data.Vector| 6.851 ns| 9.825 ns| 12.79 ns| 0.007 μs|
48
+ | Data.Vector.Unboxed| 7.235 ns| 8.447 ns| 15.47 ns| 0.008 μs|
49
+ | Data.Vector.Storable| 6.634 ns| 7.380 ns| 6.404 ns| 0.006 μs|
50
+ | Data.Sequence| 25.14 ns| 48.31 ns| 66.50 ns| 0.024 μs|
51
+ | Data.Massiv.Array| 11.08 ns| 14.58 ns| 9.754 ns| 0.009 μs|
52
+ | Data.RRBVector| 16.67 ns| 23.26 ns| 13.57 ns| 0.014 μs|
39
53
40
54
## Append
41
55
42
56
| Name| 10| 100| 1000| 10000|
43
57
| ---| ---| ---| ---| ---|
44
- | Data.List| 83.94 ns| 826.8 ns| 8.677 μs| 117.9 μs|
45
- | Data.Vector| 42.33 ns| 162.7 ns| 1.354 μs| 14.92 μs|
46
- | Data.Vector.Unboxed| 26.02 ns| 67.11 ns| 0.408 μs| 4.449 μs|
47
- | Data.Vector.Storable| 26.27 ns| 78.33 ns| 0.411 μs| 4.481 μs|
48
- | Data.Sequence| 45.31 ns| 98.69 ns| 0.147 μs| 0.206 μs|
49
- | Data.RRBVector| 52.11 ns| 679.8 ns| 2.617 μs| 4.481 μs|
58
+ | Data.List| 72.52 ns| 781.1 ns| 15.43 μs| 192.0 μs|
59
+ | Data.DList| 8.959 ns| 8.967 ns| 0.022 μs| 0.015 μs|
60
+ | Data.Vector| 40.22 ns| 164.6 ns| 1.993 μs| 23.25 μs|
61
+ | Data.Vector.Unboxed| 24.02 ns| 69.99 ns| 0.571 μs| 6.627 μs|
62
+ | Data.Vector.Storable| 24.38 ns| 79.54 ns| 0.580 μs| 6.706 μs|
63
+ | Data.Sequence| 44.08 ns| 102.0 ns| 0.234 μs| 0.414 μs|
64
+ | Data.RRBVector| 45.98 ns| 705.1 ns| 3.848 μs| 6.971 μs|
65
+ | Data.Acc| 9.058 ns| 13.44 ns| 0.021 μs| 0.017 μs|
50
66
51
67
## Length
52
68
53
69
| Name| 10| 100| 1000| 10000|
54
70
| ---| ---| ---| ---| ---|
55
- | Data.List| 18.24 ns| 149.4 ns| 1660 ns| 20.14 μs|
56
- | Data.Vector| 6.506 ns| 6.503 ns| 6.508 ns| 0.007 μs|
57
- | Data.Vector.Unboxed| 6.857 ns| 6.856 ns| 6.857 ns| 0.007 μs|
58
- | Data.Vector.Storable| 6.308 ns| 6.304 ns| 6.310 ns| 0.006 μs|
59
- | Data.Sequence| 6.331 ns| 6.333 ns| 6.331 ns| 0.006 μs|
60
- | Data.Massiv.Array| 7.717 ns| 7.722 ns| 7.727 ns| 0.008 μs|
61
- | Data.RRBVector| 6.515 ns| 6.504 ns| 6.517 ns| 0.007 μs|
71
+ | Data.List| 21.64 ns| 185.4 ns| 2.197 μs| 27.09 μs|
72
+ | Data.DList| 132.4 ns| 956.7 ns| 9.282 μs| 95.80 μs|
73
+ | Data.Vector| 10.54 ns| 9.682 ns| 0.010 μs| 0.010 μs|
74
+ | Data.Vector.Unboxed| 10.72 ns| 9.999 ns| 0.010 μs| 0.010 μs|
75
+ | Data.Vector.Storable| 8.156 ns| 8.277 ns| 0.009 μs| 0.009 μs|
76
+ | Data.Sequence| 9.241 ns| 8.856 ns| 0.010 μs| 0.009 μs|
77
+ | Data.Massiv.Array| 10.46 ns| 10.20 ns| 0.010 μs| 0.011 μs|
78
+ | Data.RRBVector| 9.678 ns| 9.383 ns| 0.009 μs| 0.010 μs|
79
+ | Data.Acc| 122.5 ns| 1295 ns| 13.69 μs| 190.7 μs|
62
80
63
81
## Stable Sort
64
82
65
83
| Name| 10| 100| 1000| 10000|
66
84
| ---| ---| ---| ---| ---|
67
- | Data.List| 302.6 ns| 9.461 μs| 227.5 μs| 5.415 ms|
68
- | Data.Vector| 145.1 ns| 5.254 μs| 113.3 μs| 2.120 ms|
69
- | Data.Vector.Unboxed| 40.80 ns| 4.590 μs| 93.93 μs| 1.506 ms|
70
- | Data.Vector.Storable| 41.88 ns| 4.130 μs| 92.06 μs| 1.456 ms|
71
- | Data.Sequence| 475.7 ns| 9.714 μs| 193.5 μs| 3.991 ms|
85
+ | Data.List| 502.1 ns| 15.58 μs| 288.9 μs| 9.445 ms|
86
+ | Data.Vector| 306.2 ns| 8.012 μs| 169.8 μs| 3.241 ms|
87
+ | Data.Vector.Unboxed| 85.88 ns| 7.150 μs| 136.4 μs| 2.360 ms|
88
+ | Data.Vector.Storable| 73.52 ns| 6.466 μs| 142.7 μs| 2.445 ms|
89
+ | Data.Sequence| 980.3 ns| 14.55 μs| 295.1 μs| 7.430 ms|
72
90
73
91
## Replicate
74
92
75
93
| Name| 10| 100| 1000| 10000|
76
94
| ---| ---| ---| ---| ---|
77
- | Data.List| 55.78 ns| 509.7 ns| 4.928 μs| 49.20 μs|
78
- | Data.Vector| 70.74 ns| 331.2 ns| 2.631 μs| 25.46 μs|
79
- | Data.Vector.Unboxed| 19.98 ns| 40.89 ns| 0.281 μs| 2.288 μs|
80
- | Data.Vector.Storable| 21.39 ns| 44.74 ns| 0.335 μs| 2.975 μs|
81
- | Data.Sequence| 58.35 ns| 420.3 ns| 4.242 μs| 42.44 μs|
82
- | Data.RRBVector| 53.14 ns| 377.3 ns| 3.398 μs| 33.47 μs|
95
+ | Data.List| 114.2 ns| 2300 ns| 9.543 μs| 80.01 μs|
96
+ | Data.DList| 163.2 ns| 2108 ns| 10.40 μs| 92.43 μs|
97
+ | Data.Vector| 87.69 ns| 739.2 ns| 3.742 μs| 36.52 μs|
98
+ | Data.Vector.Unboxed| 32.34 ns| 96.80 ns| 0.532 μs| 3.522 μs|
99
+ | Data.Vector.Storable| 36.31 ns| 110.2 ns| 0.474 μs| 4.451 μs|
100
+ | Data.Sequence| 93.59 ns| 731.2 ns| 5.813 μs| 56.32 μs|
101
+ | Data.RRBVector| 263.3 ns| 460.7 ns| 3.015 μs| 33.00 μs|
83
102
84
103
## Min
85
104
86
105
| Name| 10| 100| 1000| 10000|
87
106
| ---| ---| ---| ---| ---|
88
- | Data.List| 26.29 ns| 235.7 ns| 2.231 μs| 23.91 μs|
89
- | Data.Vector| 23.99 ns| 187.2 ns| 1.846 μs| 18.21 μs|
90
- | Data.Vector.Unboxed| 21.11 ns| 160.4 ns| 1.581 μs| 15.61 μs|
91
- | Data.Vector.Storable| 15.43 ns| 108.0 ns| 1.070 μs| 10.43 μs|
92
- | Data.Sequence| 231.3 ns| 2577 ns| 29.55 μs| 306.6 μs|
93
- | Data.Massiv.Array| 22.84 ns| 72.91 ns| 0.561 μs| 5.253 μs|
94
- | Data.RRBVector| 88.80 ns| 907.5 ns| 9.024 μs| 89.39 μs|
107
+ | Data.List| 26.50 ns| 0.290 μs| 2.903 μs| 29.08 μs|
108
+ | Data.DList| 231.5 ns| 2.109 μs| 25.42 μs| 384.9 μs|
109
+ | Data.Vector| 26.36 ns| 0.202 μs| 2.086 μs| 21.78 μs|
110
+ | Data.Vector.Unboxed| 17.54 ns| 0.096 μs| 0.842 μs| 9.815 μs|
111
+ | Data.Vector.Storable| 16.02 ns| 0.081 μs| 0.769 μs| 8.157 μs|
112
+ | Data.Sequence| 385.4 ns| 3.662 μs| 49.03 μs| 476.3 μs|
113
+ | Data.Massiv.Array| 39.87 ns| 0.090 μs| 0.782 μs| 8.697 μs|
114
+ | Data.RRBVector| 111.4 ns| 1.095 μs| 12.00 μs| 122.6 μs|
115
+ | Data.Acc| 383.4 ns| 3.811 μs| 45.25 μs| 813.3 μs|
95
116
96
117
## Max
97
118
98
119
| Name| 10| 100| 1000| 10000|
99
120
| ---| ---| ---| ---| ---|
100
- | Data.List| 24.74 ns| 241.5 ns| 2.234 μs| 23.92 μs|
101
- | Data.Vector| 23.59 ns| 196.1 ns| 1.858 μs| 18.25 μs|
102
- | Data.Vector.Unboxed| 22.85 ns| 171.6 ns| 1.695 μs| 17.98 μs|
103
- | Data.Vector.Storable| 14.25 ns| 68.73 ns| 0.576 μs| 5.273 μs|
104
- | Data.Sequence| 242.2 ns| 2644 ns| 29.49 μs| 299.2 μs|
105
- | Data.Massiv.Array| 25.02 ns| 101.9 ns| 0.819 μs| 7.854 μs|
106
- | Data.RRBVector| 88.47 ns| 850.3 ns| 8.559 μs| 84.63 μs|
121
+ | Data.List| 30.56 ns| 0.341 μs| 2.867 μs| 29.62 μs|
122
+ | Data.DList| 256.9 ns| 4.532 μs| 17.41 μs| 246.5 μs|
123
+ | Data.Vector| 29.32 ns| 0.208 μs| 1.919 μs| 18.79 μs|
124
+ | Data.Vector.Unboxed| 24.51 ns| 0.132 μs| 1.126 μs| 11.23 μs|
125
+ | Data.Vector.Storable| 16.40 ns| 0.102 μs| 0.771 μs| 7.069 μs|
126
+ | Data.Sequence| 275.2 ns| 3.133 μs| 43.81 μs| 449.9 μs|
127
+ | Data.Massiv.Array| 39.29 ns| 0.105 μs| 0.793 μs| 7.955 μs|
128
+ | Data.RRBVector| 110.4 ns| 1.111 μs| 11.29 μs| 132.4 μs|
129
+ | Data.Acc| 353.5 ns| 3.778 μs| 40.18 μs| 977.2 μs|
107
130
108
131
## Filter Element
109
132
110
133
| Name| 1| 100| 1000| 10000|
111
134
| ---| ---| ---| ---| ---|
112
- | Data.List| 91.85 μs| 91.81 μs| 91.73 μs| 91.78 μs|
113
- | Data.Vector| 83.48 μs| 83.46 μs| 83.43 μs| 83.55 μs|
114
- | Data.Vector.Unboxed| 53.28 μs| 53.35 μs| 53.32 μs| 53.28 μs|
115
- | Data.Vector.Storable| 90.45 μs| 90.51 μs| 90.36 μs| 90.44 μs|
116
- | Data.Sequence| 233.0 μs| 233.4 μs| 233.6 μs| 257.8 μs|
135
+ | Data.List| 102.6 μs| 148.6 μs| 148.8 μs| 99.55 μs|
136
+ | Data.Vector| 101.1 μs| 90.79 μs| 86.63 μs| 87.79 μs|
137
+ | Data.Vector.Unboxed| 68.01 μs| 58.17 μs| 70.60 μs| 56.90 μs|
138
+ | Data.Vector.Storable| 119.4 μs| 100.7 μs| 106.2 μs| 95.62 μs|
139
+ | Data.Sequence| 436.2 μs| 315.9 μs| 265.4 μs| 298.9 μs|
117
140
118
141
## Filter By Index
119
142
120
143
| Name| 1| 100| 1000| 10000|
121
144
| ---| ---| ---| ---| ---|
122
- | Data.Vector| 148.3 μs| 148.2 μs| 148.2 μs| 148.4 μs|
123
- | Data.Vector.Unboxed| 57.77 μs| 57.81 μs| 57.78 μs| 57.63 μs|
124
- | Data.Vector.Storable| 88.15 μs| 88.14 μs| 88.47 μs| 89.04 μs|
145
+ | Data.Vector| 188.4 μs| 179.2 μs| 342.2 μs| 222.0 μs|
146
+ | Data.Vector.Unboxed| 70.23 μs| 119.1 μs| 95.71 μs| 72.42 μs|
147
+ | Data.Vector.Storable| 122.9 μs| 166.2 μs| 114.3 μs| 130.1 μs|
148
+
0 commit comments