0.1.1 • Published 1 year ago
Introduction
This repository had two goals:
Benchmark
Dataset: [Math.random() * 100; 10_000_000]
Tries: 10
To avoid as much engine optimization as possible a new dataset is created before each function run (aka try).
All values that you'll find below are in milliseconds
Summary
--
Details
Filter
(x) => x > 50
for let i
| chromium | firefox | webkit |
---|
1 | 86 | 88 | 71 |
2 | 93 | 120 | 56 |
3 | 74 | 87 | 54 |
4 | 74 | 115 | 54 |
5 | 71 | 81 | 55 |
6 | 75 | 118 | 54 |
7 | 91 | 84 | 55 |
8 | 74 | 103 | 55 |
9 | 71 | 81 | 55 |
10 | 78 | 117 | 54 |
Average | 79 | 99 | 56 |
for of
| chromium | firefox | webkit |
---|
1 | 164 | 133 | 62 |
2 | 170 | 152 | 60 |
3 | 107 | 130 | 74 |
4 | 99 | 165 | 73 |
5 | 104 | 130 | 74 |
6 | 106 | 147 | 73 |
7 | 99 | 137 | 74 |
8 | 102 | 159 | 73 |
9 | 105 | 126 | 73 |
10 | 100 | 145 | 74 |
Average | 116 | 142 | 71 |
chained
| chromium | firefox | webkit |
---|
1 | 180 | 84 | 63 |
2 | 167 | 168 | 63 |
3 | 163 | 132 | 62 |
4 | 166 | 155 | 62 |
5 | 167 | 132 | 61 |
6 | 163 | 169 | 62 |
7 | 166 | 132 | 62 |
8 | 168 | 158 | 61 |
9 | 164 | 134 | 62 |
10 | 165 | 168 | 62 |
Average | 167 | 143 | 62 |
fleti
| chromium | firefox | webkit |
---|
1 | 99 | 82 | 60 |
2 | 96 | 200 | 81 |
3 | 107 | 180 | 76 |
4 | 103 | 181 | 66 |
5 | 164 | 180 | 66 |
6 | 103 | 181 | 66 |
7 | 106 | 181 | 66 |
8 | 104 | 182 | 66 |
9 | 104 | 180 | 66 |
10 | 104 | 181 | 66 |
Average | 109 | 173 | 68 |
Map
(x) => x ** 3
for let i
| chromium | firefox | webkit |
---|
1 | 435 | 49 | 43 |
2 | 438 | 48 | 44 |
3 | 438 | 48 | 39 |
4 | 436 | 48 | 36 |
5 | 437 | 48 | 37 |
6 | 437 | 47 | 36 |
7 | 437 | 47 | 36 |
8 | 438 | 47 | 36 |
9 | 436 | 49 | 35 |
10 | 439 | 49 | 35 |
Average | 437 | 48 | 38 |
for of
| chromium | firefox | webkit |
---|
1 | 612 | 77 | 46 |
2 | 615 | 80 | 46 |
3 | 452 | 78 | 45 |
4 | 452 | 79 | 45 |
5 | 448 | 77 | 45 |
6 | 453 | 79 | 45 |
7 | 452 | 76 | 45 |
8 | 451 | 78 | 45 |
9 | 453 | 76 | 45 |
10 | 450 | 78 | 45 |
Average | 484 | 78 | 45 |
chained
| chromium | firefox | webkit |
---|
1 | 902 | 83 | 68 |
2 | 951 | 82 | 60 |
3 | 968 | 81 | 62 |
4 | 1058 | 82 | 63 |
5 | 904 | 82 | 63 |
6 | 923 | 82 | 62 |
7 | 921 | 82 | 62 |
8 | 922 | 82 | 63 |
9 | 922 | 83 | 62 |
10 | 921 | 82 | 62 |
Average | 939 | 82 | 63 |
fleti
| chromium | firefox | webkit |
---|
1 | 682 | 113 | 57 |
2 | 689 | 116 | 52 |
3 | 691 | 112 | 49 |
4 | 690 | 117 | 49 |
5 | 691 | 112 | 49 |
6 | 689 | 117 | 49 |
7 | 692 | 112 | 48 |
8 | 688 | 118 | 49 |
9 | 686 | 112 | 49 |
10 | 691 | 117 | 48 |
Average | 689 | 115 | 50 |
For each
(x) => x + 1
for let i
| chromium | firefox | webkit |
---|
1 | 9 | 18 | 8 |
2 | 9 | 17 | 7 |
3 | 6 | 16 | 7 |
4 | 6 | 16 | 6 |
5 | 6 | 17 | 6 |
6 | 6 | 16 | 7 |
7 | 6 | 16 | 7 |
8 | 6 | 17 | 7 |
9 | 6 | 16 | 7 |
10 | 6 | 16 | 7 |
Average | 6 | 17 | 7 |
for of
| chromium | firefox | webkit |
---|
1 | 232 | 172 | 120 |
2 | 223 | 99 | 102 |
3 | 235 | 168 | 102 |
4 | 233 | 100 | 101 |
5 | 171 | 167 | 103 |
6 | 170 | 100 | 101 |
7 | 173 | 165 | 106 |
8 | 171 | 98 | 101 |
9 | 175 | 165 | 114 |
10 | 170 | 99 | 100 |
Average | 195 | 133 | 105 |
chained
| chromium | firefox | webkit |
---|
1 | 93 | 54 | 26 |
2 | 95 | 53 | 29 |
3 | 95 | 54 | 25 |
4 | 94 | 55 | 23 |
5 | 93 | 53 | 23 |
6 | 93 | 53 | 22 |
7 | 98 | 53 | 23 |
8 | 99 | 53 | 22 |
9 | 95 | 52 | 23 |
10 | 95 | 52 | 23 |
Average | 95 | 53 | 24 |
fleti
| chromium | firefox | webkit |
---|
1 | 182 | 184 | 36 |
2 | 183 | 127 | 47 |
3 | 191 | 160 | 43 |
4 | 184 | 134 | 40 |
5 | 191 | 190 | 41 |
6 | 183 | 135 | 40 |
7 | 192 | 189 | 40 |
8 | 186 | 127 | 41 |
9 | 188 | 188 | 41 |
10 | 184 | 127 | 40 |
Average | 186 | 156 | 41 |
Filter > Map
(x) => x > 50 => x ** 3
for let i
| chromium | firefox | webkit |
---|
1 | 250 | 134 | 71 |
2 | 252 | 81 | 70 |
3 | 242 | 134 | 67 |
4 | 240 | 81 | 65 |
5 | 240 | 134 | 66 |
6 | 242 | 80 | 65 |
7 | 239 | 135 | 66 |
8 | 241 | 81 | 65 |
9 | 242 | 80 | 66 |
10 | 240 | 82 | 66 |
Average | 243 | 102 | 67 |
for of
| chromium | firefox | webkit |
---|
1 | 405 | 134 | 181 |
2 | 408 | 131 | 129 |
3 | 268 | 132 | 283 |
4 | 264 | 130 | 116 |
5 | 269 | 131 | 317 |
6 | 267 | 125 | 317 |
7 | 266 | 127 | 318 |
8 | 269 | 126 | 212 |
9 | 268 | 127 | 121 |
10 | 266 | 126 | 116 |
Average | 295 | 129 | 211 |
chained
| chromium | firefox | webkit |
---|
1 | 608 | 174 | 97 |
2 | 611 | 174 | 97 |
3 | 615 | 174 | 96 |
4 | 616 | 173 | 98 |
5 | 611 | 175 | 101 |
6 | 609 | 173 | 101 |
7 | 615 | 174 | 101 |
8 | 612 | 174 | 100 |
9 | 608 | 173 | 101 |
10 | 614 | 174 | 101 |
Average | 612 | 174 | 99 |
fleti
| chromium | firefox | webkit |
---|
1 | 420 | 180 | 78 |
2 | 458 | 209 | 103 |
3 | 456 | 206 | 110 |
4 | 462 | 206 | 92 |
5 | 457 | 207 | 91 |
6 | 461 | 208 | 91 |
7 | 459 | 207 | 94 |
8 | 447 | 207 | 91 |
9 | 458 | 207 | 91 |
10 | 462 | 207 | 92 |
Average | 454 | 204 | 93 |
(x) => x > 50 => x ** Math.random()
for let i
| chromium | firefox | webkit |
---|
1 | 318 | 143 | 101 |
2 | 336 | 141 | 100 |
3 | 302 | 141 | 98 |
4 | 304 | 142 | 98 |
5 | 304 | 142 | 100 |
6 | 307 | 141 | 98 |
7 | 301 | 141 | 98 |
8 | 305 | 142 | 98 |
9 | 304 | 142 | 98 |
10 | 305 | 142 | 98 |
Average | 309 | 142 | 99 |
for of
| chromium | firefox | webkit |
---|
1 | 444 | 193 | 240 |
2 | 451 | 190 | 185 |
3 | 340 | 193 | 341 |
4 | 340 | 191 | 181 |
5 | 337 | 193 | 369 |
6 | 339 | 191 | 370 |
7 | 340 | 191 | 377 |
8 | 340 | 190 | 272 |
9 | 341 | 190 | 171 |
10 | 341 | 189 | 172 |
Average | 361 | 191 | 268 |
chained
| chromium | firefox | webkit |
---|
1 | 641 | 238 | 145 |
2 | 645 | 237 | 147 |
3 | 648 | 238 | 139 |
4 | 646 | 238 | 139 |
5 | 643 | 248 | 141 |
6 | 649 | 267 | 139 |
7 | 647 | 237 | 138 |
8 | 643 | 239 | 139 |
9 | 648 | 236 | 141 |
10 | 648 | 237 | 142 |
Average | 646 | 242 | 141 |
fleti
| chromium | firefox | webkit |
---|
1 | 695 | 272 | 209 |
2 | 699 | 271 | 202 |
3 | 702 | 273 | 178 |
4 | 699 | 272 | 181 |
5 | 695 | 272 | 183 |
6 | 694 | 271 | 184 |
7 | 697 | 271 | 179 |
8 | 694 | 272 | 177 |
9 | 694 | 272 | 180 |
10 | 699 | 272 | 178 |
Average | 697 | 272 | 185 |
Map > Filter > Map
(x) => round(x) => x > 50 => x * 3
for let i
| chromium | firefox | webkit |
---|
1 | 289 | 90 | 131 |
2 | 297 | 90 | 129 |
3 | 282 | 90 | 124 |
4 | 281 | 89 | 124 |
5 | 280 | 90 | 122 |
6 | 313 | 89 | 122 |
7 | 284 | 89 | 123 |
8 | 284 | 90 | 122 |
9 | 284 | 97 | 126 |
10 | 282 | 88 | 127 |
Average | 288 | 90 | 125 |
for of
| chromium | firefox | webkit |
---|
1 | 467 | 153 | 297 |
2 | 463 | 158 | 198 |
3 | 317 | 159 | 462 |
4 | 321 | 159 | 212 |
5 | 323 | 158 | 310 |
6 | 320 | 158 | 149 |
7 | 324 | 159 | 149 |
8 | 323 | 158 | 148 |
9 | 321 | 159 | 152 |
10 | 324 | 158 | 151 |
Average | 350 | 158 | 223 |
chained
| chromium | firefox | webkit |
---|
1 | 592 | 271 | 226 |
2 | 607 | 315 | 216 |
3 | 630 | 271 | 220 |
4 | 602 | 315 | 218 |
5 | 601 | 270 | 224 |
6 | 603 | 314 | 226 |
7 | 599 | 270 | 222 |
8 | 601 | 313 | 225 |
9 | 599 | 271 | 223 |
10 | 599 | 315 | 232 |
Average | 603 | 293 | 223 |
fleti
| chromium | firefox | webkit |
---|
1 | 704 | 267 | 205 |
2 | 704 | 301 | 245 |
3 | 704 | 301 | 245 |
4 | 702 | 301 | 245 |
5 | 711 | 302 | 247 |
6 | 715 | 302 | 219 |
7 | 704 | 302 | 221 |
8 | 701 | 302 | 219 |
9 | 701 | 301 | 222 |
10 | 700 | 301 | 225 |
Average | 704 | 298 | 229 |