Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Array.prototype.reduce() vs for loop sum
(version: 0)
Which is more efficient, reduce or a foor loop?
Comparing performance of:
Array.prototype.reduce() vs for loop sum
Created:
2 years ago
by:
Registered User
Jump to the latest result
Script Preparation code:
var arrA = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500]
Tests:
Array.prototype.reduce()
let total = arrA.reduce((a, b) => a + b) console.log(total)
for loop sum
let total = 0 for (let i = 0; i < arrA.length; i++) { total += arrA[i] } console.log(`Total: ${total}`)
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
Array.prototype.reduce()
for loop sum
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
one year ago
)
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0
Browser/OS:
Firefox 126 on Windows
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
Array.prototype.reduce()
67807.4 Ops/sec
for loop sum
96277.6 Ops/sec
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
Let's break down the benchmark and analyze the results. **Benchmark Overview** The benchmark compares the performance of two methods to sum up an array: `Array.prototype.reduce()` and a traditional `for` loop. The array `arrA` contains 500 elements, each with a value between 1 and 500. **Test Cases** There are two test cases: 1. **Array.prototype.reduce()**: This method uses the `reduce()` function to sum up all elements in the array. The callback function `(a, b) => a + b` is applied to each element, starting from the first element (`a`) and accumulating the sum. 2. **for loop sum**: This test case uses a traditional `for` loop to iterate over the array and sum up its elements. **Browser Information** The latest benchmark result shows that the tests were executed on Firefox 126, running on Windows 10. **Results** The results show two browsers with different performance: 1. **For loop sum**: The browser executes this test case at a rate of approximately 67807 executions per second. 2. **Array.prototype.reduce()**: This test case is executed at a significantly slower rate: around 96277 executions per second. This indicates that the traditional `for` loop approach is faster than using `Array.prototype.reduce()` for summing up an array of numbers. **Why?** There are several reasons why this might be the case: * **Overhead**: The `reduce()` function has some overhead due to its complex implementation and the need to store the accumulator state. * **Cache locality**: In the traditional loop, each iteration accesses a new element in the array, which can improve cache locality. In contrast, the `reduce()` function might access elements out of order or reuse memory, leading to cache misses. * **Parity of iterations**: The `for` loop always iterates over the array exactly once, whereas the `reduce()` function may perform additional work between iterations (e.g., updating the accumulator). Keep in mind that these are just educated guesses based on general principles and not specific insights into the actual implementation of Firefox 126. Do you have any follow-up questions or would you like to discuss further?
Related benchmarks:
for loop vs array find
Loop Iteration
Array.sort vs Math.min+Math.max (LONG ARRAYS)
for of vs Array.reduce vs Array.forEach vs for i for summing and array of integers
Comments
Confirm delete:
Do you really want to delete benchmark?