Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save julianjensen/8dbfa0eacf6930605aa728c780bd10cb to your computer and use it in GitHub Desktop.

Select an option

Save julianjensen/8dbfa0eacf6930605aa728c780bd10cb to your computer and use it in GitHub Desktop.
Benchmarks (taken from fast.js) comparing built-in (native) implementation versus user-land implementations.
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .fill() vs fast.fill() (3 items) Native .fill() vs fast.fill() (3 items)
✓ Array.prototype.fill() x 26,557,003 ops/sec ±1.88% (90 runs sampled) ✓ Array.prototype.fill() x 31,067,272 ops/sec ±1.43% (90 runs sampled)
✓ Vector.fill() x 83,198,767 ops/sec ±4.40% (84 runs sampled) ✓ Vector.fill() x 147,385,123 ops/sec ±1.34% (89 runs sampled)
✓ fast.fill() x 83,882,082 ops/sec ±5.03% (84 runs sampled) ✓ fast.fill() x 140,299,152 ops/sec ±1.53% (88 runs sampled)
Result: fast.js is 0.00% faster than Vector.fill(). Result: fast.js is 0.00% faster than Array.prototype.fill().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .fill() vs fast.fill() (10 items) Native .fill() vs fast.fill() (10 items)
✓ Array.prototype.fill() x 19,710,097 ops/sec ±4.50% (81 runs sampled) ✓ Array.prototype.fill() x 23,786,755 ops/sec ±1.31% (92 runs sampled)
✓ Vector.fill() x 44,770,920 ops/sec ±6.21% (84 runs sampled) ✓ Vector.fill() x 62,773,698 ops/sec ±1.45% (93 runs sampled)
✓ fast.fill() x 38,817,383 ops/sec ±10.51% (75 runs sampled) ✓ fast.fill() x 60,199,742 ops/sec ±1.50% (87 runs sampled)
Result: fast.js is 0.00% faster than Array.prototype.fill(). Result: fast.js is 0.00% faster than Array.prototype.fill().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .fill() vs fast.fill() (1000 items) Native .fill() vs fast.fill() (1000 items)
✓ Array.prototype.fill() x 610,471 ops/sec ±11.34% (79 runs sampled) ✓ Array.prototype.fill() x 783,093 ops/sec ±1.43% (95 runs sampled)
✓ Vector.fill() x 608,909 ops/sec ±11.10% (79 runs sampled) ✓ Vector.fill() x 880,700 ops/sec ±1.31% (94 runs sampled)
✓ fast.fill() x 627,518 ops/sec ±10.55% (77 runs sampled) ✓ fast.fill() x 855,316 ops/sec ±1.80% (91 runs sampled)
Result: fast.js is 0.26% faster than Vector.fill(). Result: fast.js is 0.00% faster than Array.prototype.fill().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .reduce() plucker vs fast.pluck() Native .reduce() plucker vs fast.pluck()
✓ Native Array::reduce() plucker x 736,415 ops/sec ±1.94% (86 runs sampled) ✓ Native Array::reduce() plucker x 1,078,613 ops/sec ±1.43% (91 runs sampled)
✓ fast.pluck() x 928,180 ops/sec ±2.08% (85 runs sampled) ✓ fast.pluck() x 910,155 ops/sec ±1.67% (90 runs sampled)
✓ underscore.pluck() x 807,584 ops/sec ±1.73% (85 runs sampled) ✓ underscore.pluck() x 837,325 ops/sec ±1.19% (92 runs sampled)
✓ lodash.pluck(): ✓ lodash.pluck():
Result: fast.js is 26.04% faster than Native Array::reduce() plucker. Result: fast.js is 15.62% slower than Native Array::reduce() plucker.
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native Object.keys().map() value extractor vs fast.values() Native Object.keys().map() value extractor vs fast.values()
✓ Native Object.keys().map() x 2,144,391 ops/sec ±2.71% (80 runs sampled) ✓ Native Object.keys().map() x 6,427,729 ops/sec ±1.83% (90 runs sampled)
✓ fast.values() x 8,294,013 ops/sec ±2.35% (87 runs sampled) ✓ fast.values() x 16,072,149 ops/sec ±1.48% (90 runs sampled)
✓ underscore.values() x 7,900,592 ops/sec ±1.60% (87 runs sampled) ✓ underscore.values() x 7,834,497 ops/sec ±1.33% (91 runs sampled)
✓ lodash.values() x 4,059,460 ops/sec ±1.93% (83 runs sampled) ✓ lodash.values() x 5,829,374 ops/sec ±1.97% (93 runs sampled)
Result: fast.js is 286.78% faster than Native Object.keys().map(). Result: fast.js is 150.04% faster than Native Object.keys().map().
Object.assign() vs fast.assign() Object.assign() vs fast.assign()
✓ Object.assign() x 312,864 ops/sec ±2.04% (82 runs sampled) ✓ Object.assign() x 308,246 ops/sec ±1.74% (93 runs sampled)
✓ fast.assign() x 291,065 ops/sec ±2.03% (84 runs sampled) ✓ fast.assign() x 332,987 ops/sec ±1.93% (91 runs sampled)
✓ fast.assign() v0.0.4c x 282,802 ops/sec ±2.10% (80 runs sampled) ✓ fast.assign() v0.0.4c x 335,391 ops/sec ±1.68% (94 runs sampled)
✓ fast.assign() v0.0.4b x 266,415 ops/sec ±2.03% (83 runs sampled) ✓ fast.assign() v0.0.4b x 293,002 ops/sec ±2.09% (92 runs sampled)
✓ lodash.assign() x 217,490 ops/sec ±1.86% (81 runs sampled) ✓ lodash.assign() x 249,559 ops/sec ±1.77% (91 runs sampled)
Result: fast.js is 6.97% slower than Object.assign(). Result: fast.js is 8.03% faster than Object.assign().
Object.assign() vs fast.assign() (3 arguments) Object.assign() vs fast.assign() (3 arguments)
✓ Object.assign() x 144,884 ops/sec ±2.48% (82 runs sampled) ✓ Object.assign() x 138,327 ops/sec ±2.08% (89 runs sampled)
✓ fast.assign() x 64,011 ops/sec ±1.92% (79 runs sampled) ✓ fast.assign() x 106,050 ops/sec ±2.48% (88 runs sampled)
✓ fast.assign() v0.0.4c x 64,382 ops/sec ±2.31% (78 runs sampled) ✓ fast.assign() v0.0.4c x 109,038 ops/sec ±2.36% (89 runs sampled)
✓ fast.assign() v0.0.4b x 61,674 ops/sec ±2.27% (78 runs sampled) ✓ fast.assign() v0.0.4b x 97,206 ops/sec ±2.06% (89 runs sampled)
Result: fast.js is 55.82% slower than Object.assign(). Result: fast.js is 23.33% slower than Object.assign().
Object.assign() vs fast.assign() (10 arguments) Object.assign() vs fast.assign() (10 arguments)
✓ Object.assign() x 37,192 ops/sec ±3.20% (76 runs sampled) ✓ Object.assign() x 32,956 ops/sec ±3.03% (83 runs sampled)
✓ fast.assign() x 23,060 ops/sec ±2.21% (77 runs sampled) ✓ fast.assign() x 32,805 ops/sec ±2.74% (84 runs sampled)
✓ fast.assign() v0.0.4c x 23,091 ops/sec ±2.20% (78 runs sampled) ✓ fast.assign() v0.0.4c x 32,627 ops/sec ±2.63% (83 runs sampled)
✓ fast.assign() v0.0.4b x 21,972 ops/sec ±2.02% (83 runs sampled) ✓ fast.assign() v0.0.4b x 29,261 ops/sec ±3.09% (85 runs sampled)
Result: fast.js is 38% slower than Object.assign(). Result: fast.js is 0.46% slower than Object.assign().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native string comparison vs fast.intern() (short) Native string comparison vs fast.intern() (short)
✓ Native comparison x 29,826,850 ops/sec ±1.65% (92 runs sampled) ✓ Native comparison x 727,985,051 ops/sec ±0.78% (87 runs sampled)
✓ fast.intern() x 137,204,591 ops/sec ±2.02% (87 runs sampled) ✓ fast.intern() x 870,384,019 ops/sec ±0.56% (91 runs sampled)
Result: fast.js is 360.00% faster than Native comparison. Result: fast.js is 19.56% faster than Native comparison.
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native string comparison vs fast.intern() (medium) Native string comparison vs fast.intern() (medium)
✓ Native comparison x 2,392,547 ops/sec ±1.57% (92 runs sampled) ✓ Native comparison x 1,697,554 ops/sec ±1.61% (93 runs sampled)
✓ fast.intern() x 149,750,196 ops/sec ±1.51% (90 runs sampled) ✓ fast.intern() x 866,485,471 ops/sec ±0.69% (93 runs sampled)
Result: fast.js is 6159.03% faster than Native comparison. Result: fast.js is 50943.19% faster than Native comparison.
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native string comparison vs fast.intern() (long) Native string comparison vs fast.intern() (long)
✓ Native comparison x 266,418 ops/sec ±1.43% (88 runs sampled) ✓ Native comparison x 18,532 ops/sec ±1.33% (95 runs sampled)
✓ fast.intern() x 141,503,451 ops/sec ±1.94% (85 runs sampled) ✓ fast.intern() x 873,386,305 ops/sec ±0.45% (92 runs sampled)
Result: fast.js is 53013.26% faster than Native comparison. Result: fast.js is 4712825.17% faster than Native comparison.
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native try {} catch (e) {} vs fast.try() Native try {} catch (e) {} vs fast.try()
✓ try...catch x 4,681,858 ops/sec ±2.06% (89 runs sampled) ✓ try...catch x 4,763,770 ops/sec ±0.93% (94 runs sampled)
✓ fast.try() x 3,667,389 ops/sec ±2.08% (86 runs sampled) ✓ fast.try() x 4,615,280 ops/sec ±0.97% (95 runs sampled)
Result: fast.js is 21.67% slower than try...catch. Result: fast.js is 3.12% slower than try...catch.
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native try {} catch (e) {} vs fast.try() (single function call) Native try {} catch (e) {} vs fast.try() (single function call)
✓ try...catch x 4,842,372 ops/sec ±2.16% (87 runs sampled) ✓ try...catch x 4,714,099 ops/sec ±1.08% (93 runs sampled)
✓ fast.try() x 4,805,286 ops/sec ±2.19% (87 runs sampled) ✓ fast.try() x 4,692,263 ops/sec ±1.33% (92 runs sampled)
Result: fast.js is 0.77% slower than try...catch. Result: fast.js is 0.46% slower than try...catch.
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .apply() vs fast.apply() (3 items, no context) Native .apply() vs fast.apply() (3 items, no context)
✓ Function::apply() x 40,864,646 ops/sec ±2.02% (86 runs sampled) ✓ Function::apply() x 40,155,500 ops/sec ±1.19% (94 runs sampled)
✓ fast.apply() x 41,047,776 ops/sec ±1.63% (85 runs sampled) ✓ fast.apply() x 46,415,253 ops/sec ±1.79% (89 runs sampled)
Result: fast.js is 0.45% faster than Function::apply(). Result: fast.js is 15.59% faster than Function::apply().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .apply() vs fast.apply() (3 items, with context) Native .apply() vs fast.apply() (3 items, with context)
✓ Function::apply() x 40,153,512 ops/sec ±2.32% (84 runs sampled) ✓ Function::apply() x 37,887,848 ops/sec ±1.37% (91 runs sampled)
✓ fast.apply() x 40,220,033 ops/sec ±2.00% (85 runs sampled) ✓ fast.apply() x 40,974,493 ops/sec ±2.42% (86 runs sampled)
Result: fast.js is 0.17% faster than Function::apply(). Result: fast.js is 8.15% faster than Function::apply().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .apply() vs fast.apply() (6 items, no context) Native .apply() vs fast.apply() (6 items, no context)
✓ Function::apply() x 42,723,087 ops/sec ±1.75% (88 runs sampled) ✓ Function::apply() x 35,483,843 ops/sec ±2.18% (84 runs sampled)
✓ fast.apply() x 42,208,402 ops/sec ±1.73% (85 runs sampled) ✓ fast.apply() x 38,943,145 ops/sec ±1.88% (82 runs sampled)
Result: fast.js is 1.2% slower than Function::apply(). Result: fast.js is 9.75% faster than Function::apply().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .apply() vs fast.apply() (6 items, with context) Native .apply() vs fast.apply() (6 items, with context)
✓ Function::apply() x 32,596,604 ops/sec ±2.47% (86 runs sampled) ✓ Function::apply() x 27,312,890 ops/sec ±1.75% (87 runs sampled)
✓ fast.apply() x 34,024,967 ops/sec ±2.32% (84 runs sampled) ✓ fast.apply() x 30,214,209 ops/sec ±1.37% (91 runs sampled)
Result: fast.js is 4.38% faster than Function::apply(). Result: fast.js is 10.62% faster than Function::apply().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .apply() vs fast.apply() (10 items, no context) Native .apply() vs fast.apply() (10 items, no context)
✓ Function::apply() x 34,118,666 ops/sec ±2.03% (84 runs sampled) ✓ Function::apply() x 25,326,022 ops/sec ±1.60% (92 runs sampled)
✓ fast.apply() x 27,728,204 ops/sec ±1.95% (87 runs sampled) ✓ fast.apply() x 25,343,388 ops/sec ±1.34% (91 runs sampled)
Result: fast.js is 18.73% slower than Function::apply(). Result: fast.js is 0.07% faster than Function::apply().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .apply() vs fast.apply() (10 items, with context) Native .apply() vs fast.apply() (10 items, with context)
✓ Function::apply() x 31,216,462 ops/sec ±1.87% (89 runs sampled) ✓ Function::apply() x 24,256,127 ops/sec ±1.71% (90 runs sampled)
✓ fast.apply() x 25,556,392 ops/sec ±2.34% (84 runs sampled) ✓ fast.apply() x 23,733,530 ops/sec ±1.36% (92 runs sampled)
Result: fast.js is 18.13% slower than Function::apply(). Result: fast.js is 2.15% slower than Function::apply().
fast.clone() vs underscore.clone() vs lodash.clone() fast.clone() vs underscore.clone() vs lodash.clone()
✓ fast.clone() x 5,153,527 ops/sec ±2.30% (84 runs sampled) ✓ fast.clone() x 5,796,233 ops/sec ±1.72% (91 runs sampled)
✓ underscore.clone() x 2,882,461 ops/sec ±2.24% (88 runs sampled) ✓ underscore.clone() x 3,320,806 ops/sec ±1.61% (91 runs sampled)
✓ lodash.clone() x 1,013,198 ops/sec ±3.17% (86 runs sampled) ✓ lodash.clone() x 1,885,391 ops/sec ±1.50% (93 runs sampled)
Result: fast.js is 408.64% faster than lodash.clone(). Result: fast.js is 207.43% faster than lodash.clone().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .indexOf() vs fast.indexOf() (3 items) Native .indexOf() vs fast.indexOf() (3 items)
✓ Array::indexOf() x 16,300,234 ops/sec ±1.67% (87 runs sampled) ✓ Array::indexOf() x 30,518,452 ops/sec ±1.30% (91 runs sampled)
✓ fast.indexOf() x 53,054,117 ops/sec ±1.75% (90 runs sampled) ✓ fast.indexOf() x 47,621,456 ops/sec ±1.77% (90 runs sampled)
✓ fast.indexOf() v0.0.2 x 57,122,909 ops/sec ±1.56% (90 runs sampled) ✓ fast.indexOf() v0.0.2 x 47,494,331 ops/sec ±1.71% (89 runs sampled)
✓ underscore.indexOf() x 7,597,118 ops/sec ±1.60% (90 runs sampled) ✓ underscore.indexOf() x 24,807,316 ops/sec ±1.62% (90 runs sampled)
✓ lodash.indexOf() x 22,170,689 ops/sec ±1.78% (87 runs sampled) ✓ lodash.indexOf() x 30,255,935 ops/sec ±0.82% (92 runs sampled)
✓ vector.indexOf() x 49,151,923 ops/sec ±1.62% (89 runs sampled) ✓ vector.indexOf() x 46,175,797 ops/sec ±2.27% (91 runs sampled)
Result: fast.js is 225.48% faster than Array::indexOf(). Result: fast.js is 56.04% faster than Array::indexOf().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .indexOf() vs fast.indexOf() (10 items) Native .indexOf() vs fast.indexOf() (10 items)
✓ Array::indexOf() x 13,863,210 ops/sec ±1.83% (88 runs sampled) ✓ Array::indexOf() x 22,314,707 ops/sec ±0.87% (92 runs sampled)
✓ fast.indexOf() x 28,440,332 ops/sec ±1.67% (89 runs sampled) ✓ fast.indexOf() x 31,041,983 ops/sec ±0.88% (92 runs sampled)
✓ fast.indexOf() v0.0.2 x 34,593,549 ops/sec ±1.39% (91 runs sampled) ✓ fast.indexOf() v0.0.2 x 30,255,234 ops/sec ±0.78% (91 runs sampled)
✓ underscore.indexOf() x 6,449,724 ops/sec ±1.66% (88 runs sampled) ✓ underscore.indexOf() x 18,038,795 ops/sec ±1.65% (89 runs sampled)
✓ lodash.indexOf() x 15,086,113 ops/sec ±1.78% (88 runs sampled) ✓ lodash.indexOf() x 13,796,020 ops/sec ±1.61% (90 runs sampled)
✓ vector.indexOf() x 26,157,087 ops/sec ±1.25% (89 runs sampled) ✓ vector.indexOf() x 23,923,539 ops/sec ±2.59% (84 runs sampled)
Result: fast.js is 105.15% faster than Array::indexOf(). Result: fast.js is 39.11% faster than Array::indexOf().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .indexOf() vs fast.indexOf() (1000 items) Native .indexOf() vs fast.indexOf() (1000 items)
✓ Array::indexOf() x 563,576 ops/sec ±1.35% (89 runs sampled) ✓ Array::indexOf() x 551,049 ops/sec ±0.89% (96 runs sampled)
✓ fast.indexOf() x 402,350 ops/sec ±1.08% (92 runs sampled) ✓ fast.indexOf() x 621,846 ops/sec ±1.25% (95 runs sampled)
✓ fast.indexOf() v0.0.2 x 619,274 ops/sec ±1.12% (92 runs sampled) ✓ fast.indexOf() v0.0.2 x 633,923 ops/sec ±0.70% (97 runs sampled)
✓ underscore.indexOf() x 324,591 ops/sec ±1.52% (92 runs sampled) ✓ underscore.indexOf() x 577,562 ops/sec ±1.31% (95 runs sampled)
✓ lodash.indexOf() x 373,239 ops/sec ±1.51% (91 runs sampled) ✓ lodash.indexOf() x 242,323 ops/sec ±1.25% (93 runs sampled)
✓ vector.indexOf() x 322,863 ops/sec ±1.63% (89 runs sampled) ✓ vector.indexOf() x 463,005 ops/sec ±1.39% (95 runs sampled)
Result: fast.js is 28.61% slower than Array::indexOf(). Result: fast.js is 12.85% faster than Array::indexOf().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .lastIndexOf() vs fast.lastIndexOf() (3 items) Native .lastIndexOf() vs fast.lastIndexOf() (3 items)
✓ Array::lastIndexOf() x 124,911,742 ops/sec ±1.60% (88 runs sampled) ✓ Array::lastIndexOf() x 44,971,271 ops/sec ±1.56% (91 runs sampled)
✓ fast.lastIndexOf() x 101,277,774 ops/sec ±1.84% (89 runs sampled) ✓ fast.lastIndexOf() x 95,862,510 ops/sec ±2.12% (87 runs sampled)
✓ fast.lastIndexOf() v0.0.2 x 111,297,984 ops/sec ±1.43% (89 runs sampled) ✓ fast.lastIndexOf() v0.0.2 x 99,682,906 ops/sec ±1.82% (91 runs sampled)
✓ underscore.lastIndexOf() x 13,280,065 ops/sec ±2.07% (87 runs sampled) ✓ underscore.lastIndexOf() x 48,220,639 ops/sec ±1.85% (89 runs sampled)
✓ lodash.lastIndexOf() x 22,324,708 ops/sec ±1.53% (91 runs sampled) ✓ lodash.lastIndexOf() x 23,596,868 ops/sec ±1.42% (91 runs sampled)
Result: fast.js is 18.92% slower than Array::lastIndexOf(). Result: fast.js is 113.16% faster than Array::lastIndexOf().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .lastIndexOf() vs fast.lastIndexOf() (10 items) Native .lastIndexOf() vs fast.lastIndexOf() (10 items)
✓ Array::lastIndexOf() x 85,966,656 ops/sec ±1.68% (90 runs sampled) ✓ Array::lastIndexOf() x 22,938,188 ops/sec ±1.23% (91 runs sampled)
✓ fast.lastIndexOf() x 50,025,656 ops/sec ±1.33% (90 runs sampled) ✓ fast.lastIndexOf() x 57,539,544 ops/sec ±1.55% (91 runs sampled)
✓ fast.lastIndexOf() v0.0.2 x 67,659,292 ops/sec ±1.52% (87 runs sampled) ✓ fast.lastIndexOf() v0.0.2 x 55,171,111 ops/sec ±2.48% (86 runs sampled)
✓ underscore.lastIndexOf() x 5,925,891 ops/sec ±2.02% (86 runs sampled) ✓ underscore.lastIndexOf() x 23,037,516 ops/sec ±1.42% (92 runs sampled)
✓ lodash.lastIndexOf() x 7,579,377 ops/sec ±1.56% (88 runs sampled) ✓ lodash.lastIndexOf() x 7,537,132 ops/sec ±1.36% (90 runs sampled)
Result: fast.js is 41.81% slower than Array::lastIndexOf(). Result: fast.js is 150.85% faster than Array::lastIndexOf().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .lastIndexOf() vs fast.lastIndexOf() (1000 items) Native .lastIndexOf() vs fast.lastIndexOf() (1000 items)
✓ Array::lastIndexOf() x 2,542,751 ops/sec ±1.63% (91 runs sampled) ✓ Array::lastIndexOf() x 1,307,611 ops/sec ±1.16% (95 runs sampled)
✓ fast.lastIndexOf() x 1,065,469 ops/sec ±1.55% (90 runs sampled) ✓ fast.lastIndexOf() x 1,425,125 ops/sec ±1.38% (94 runs sampled)
✓ fast.lastIndexOf() v0.0.2 x 1,704,934 ops/sec ±1.58% (88 runs sampled) ✓ fast.lastIndexOf() v0.0.2 x 1,434,044 ops/sec ±1.34% (97 runs sampled)
✓ underscore.lastIndexOf() x 271,944 ops/sec ±2.11% (84 runs sampled) ✓ underscore.lastIndexOf() x 1,059,646 ops/sec ±1.57% (95 runs sampled)
✓ lodash.lastIndexOf() x 161,394 ops/sec ±1.76% (86 runs sampled) ✓ lodash.lastIndexOf() x 150,606 ops/sec ±1.07% (90 runs sampled)
Result: fast.js is 58.1% slower than Array::lastIndexOf(). Result: fast.js is 8.99% faster than Array::lastIndexOf().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .bind() vs fast.bind() Native .bind() vs fast.bind()
✓ Function::bind() x 24,309,886 ops/sec ±2.08% (84 runs sampled) ✓ Function::bind() x 22,061,589 ops/sec ±1.91% (90 runs sampled)
✓ fast.bind() x 8,682,183 ops/sec ±2.22% (87 runs sampled) ✓ fast.bind() x 8,607,143 ops/sec ±1.45% (90 runs sampled)
✓ fast.bind() v0.0.2 x 3,643,995 ops/sec ±2.00% (87 runs sampled) ✓ fast.bind() v0.0.2 x 7,256,482 ops/sec ±1.69% (89 runs sampled)
✓ underscore.bind() x 797,661 ops/sec ±2.97% (84 runs sampled) ✓ underscore.bind() x 2,765,432 ops/sec ±1.11% (92 runs sampled)
✓ lodash.bind() x 298,805 ops/sec ±2.37% (80 runs sampled) ✓ lodash.bind() x 425,829 ops/sec ±1.36% (89 runs sampled)
Result: fast.js is 64.29% slower than Function::bind(). Result: fast.js is 60.99% slower than Function::bind().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .bind() vs fast.bind() with prebound functions Native .bind() vs fast.bind() with prebound functions
✓ Function::bind() x 42,740,586 ops/sec ±2.33% (81 runs sampled) ✓ Function::bind() x 71,615,415 ops/sec ±1.66% (85 runs sampled)
✓ fast.bind() x 32,864,558 ops/sec ±2.61% (83 runs sampled) ✓ fast.bind() x 32,779,301 ops/sec ±1.56% (88 runs sampled)
✓ fast.bind() v0.0.2 x 6,005,450 ops/sec ±2.10% (88 runs sampled) ✓ fast.bind() v0.0.2 x 24,248,674 ops/sec ±1.72% (90 runs sampled)
✓ underscore.bind() x 2,332,794 ops/sec ±1.80% (83 runs sampled) ✓ underscore.bind() x 5,220,660 ops/sec ±1.83% (88 runs sampled)
✓ lodash.bind() x 30,543,323 ops/sec ±2.62% (88 runs sampled) ✓ lodash.bind() x 31,607,435 ops/sec ±1.35% (88 runs sampled)
Result: fast.js is 23.11% slower than Function::bind(). Result: fast.js is 54.23% slower than Function::bind().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .bind() vs fast.partial() Native .bind() vs fast.partial()
✓ Function::bind() x 27,258,921 ops/sec ±2.00% (83 runs sampled) ✓ Function::bind() x 32,615,531 ops/sec ±1.57% (89 runs sampled)
✓ fast.partial() x 8,902,222 ops/sec ±2.32% (86 runs sampled) ✓ fast.partial() x 8,862,642 ops/sec ±1.58% (88 runs sampled)
✓ fast.partial() v0.0.2 x 3,615,267 ops/sec ±2.19% (78 runs sampled) ✓ fast.partial() v0.0.2 x 7,517,778 ops/sec ±1.37% (92 runs sampled)
✓ fast.partial() v0.0.0 x 3,710,817 ops/sec ±2.12% (87 runs sampled) ✓ fast.partial() v0.0.0 x 7,485,141 ops/sec ±1.20% (90 runs sampled)
✓ underscore.partial() x 981,414 ops/sec ±2.18% (84 runs sampled) ✓ underscore.partial() x 5,192,796 ops/sec ±1.75% (92 runs sampled)
✓ lodash.partial() x 386,247 ops/sec ±2.20% (84 runs sampled) ✓ lodash.partial() x 552,553 ops/sec ±1.94% (93 runs sampled)
Result: fast.js is 67.34% slower than Function::bind(). Result: fast.js is 72.83% slower than Function::bind().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .bind() vs fast.partial() with prebound functions Native .bind() vs fast.partial() with prebound functions
✓ Function::bind() x 42,101,985 ops/sec ±2.08% (84 runs sampled) ✓ Function::bind() x 72,185,253 ops/sec ±2.08% (88 runs sampled)
✓ fast.partial() x 34,041,891 ops/sec ±1.94% (86 runs sampled) ✓ fast.partial() x 32,894,955 ops/sec ±1.65% (92 runs sampled)
✓ fast.partial() v0.0.2 x 6,011,297 ops/sec ±1.94% (84 runs sampled) ✓ fast.partial() v0.0.2 x 23,947,165 ops/sec ±1.73% (89 runs sampled)
✓ fast.partial() v0.0.0 x 6,070,487 ops/sec ±2.05% (85 runs sampled) ✓ fast.partial() v0.0.0 x 24,269,304 ops/sec ±1.54% (92 runs sampled)
✓ underscore.partial() x 2,969,970 ops/sec ±1.59% (86 runs sampled) ✓ underscore.partial() x 10,244,324 ops/sec ±1.41% (92 runs sampled)
✓ lodash.partial() x 30,645,720 ops/sec ±2.20% (85 runs sampled) ✓ lodash.partial() x 31,738,080 ops/sec ±1.30% (90 runs sampled)
Result: fast.js is 19.14% slower than Function::bind(). Result: fast.js is 54.43% slower than Function::bind().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .map() vs fast.map() (3 items) Native .map() vs fast.map() (3 items)
✓ Array::map() x 3,583,454 ops/sec ±1.87% (87 runs sampled) ✓ Array::map() x 9,731,563 ops/sec ±1.37% (92 runs sampled)
✓ fast.map() x 16,718,503 ops/sec ±1.94% (86 runs sampled) ✓ fast.map() x 12,328,634 ops/sec ±1.25% (94 runs sampled)
✓ fast.map() v0.0.2a x 14,261,101 ops/sec ±1.97% (88 runs sampled) ✓ fast.map() v0.0.2a x 11,553,893 ops/sec ±1.23% (87 runs sampled)
✓ fast.map() v0.0.1 x 14,193,318 ops/sec ±1.81% (86 runs sampled) ✓ fast.map() v0.0.1 x 11,225,557 ops/sec ±1.75% (94 runs sampled)
✓ fast.map() v0.0.0 x 17,288,308 ops/sec ±2.21% (81 runs sampled) ✓ fast.map() v0.0.0 x 12,280,867 ops/sec ±1.35% (88 runs sampled)
✓ underscore.map() x 7,305,912 ops/sec ±2.00% (87 runs sampled) ✓ underscore.map() x 10,164,229 ops/sec ±2.04% (91 runs sampled)
✓ lodash.map() x 14,079,337 ops/sec ±1.89% (86 runs sampled) ✓ lodash.map() x 7,013,387 ops/sec ±1.25% (95 runs sampled)
Result: fast.js is 366.55% faster than Array::map(). Result: fast.js is 26.69% faster than Array::map().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .map() vs fast.map() (10 items) Native .map() vs fast.map() (10 items)
✓ Array::map() x 1,309,504 ops/sec ±1.42% (91 runs sampled) ✓ Array::map() x 4,208,141 ops/sec ±1.22% (93 runs sampled)
✓ fast.map() x 6,242,456 ops/sec ±1.57% (89 runs sampled) ✓ fast.map() x 4,727,227 ops/sec ±2.76% (90 runs sampled)
✓ fast.map() v0.0.2a x 5,597,336 ops/sec ±1.92% (85 runs sampled) ✓ fast.map() v0.0.2a x 4,694,060 ops/sec ±1.36% (90 runs sampled)
✓ fast.map() v0.0.1 x 5,543,511 ops/sec ±2.15% (85 runs sampled) ✓ fast.map() v0.0.1 x 4,705,995 ops/sec ±1.58% (91 runs sampled)
✓ fast.map() v0.0.0 x 6,139,148 ops/sec ±1.97% (83 runs sampled) ✓ fast.map() v0.0.0 x 4,772,529 ops/sec ±1.27% (91 runs sampled)
✓ underscore.map() x 4,010,644 ops/sec ±2.52% (86 runs sampled) ✓ underscore.map() x 4,605,293 ops/sec ±1.32% (93 runs sampled)
✓ lodash.map() x 5,655,688 ops/sec ±2.17% (82 runs sampled) ✓ lodash.map() x 3,542,487 ops/sec ±1.62% (93 runs sampled)
Result: fast.js is 376.70% faster than Array::map(). Result: fast.js is 12.34% faster than Array::map().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .map() vs fast.map() (1000 items) Native .map() vs fast.map() (1000 items)
✓ Array::map() x 13,743 ops/sec ±1.80% (87 runs sampled) ✓ Array::map() x 52,426 ops/sec ±1.36% (91 runs sampled)
✓ fast.map() x 72,122 ops/sec ±2.31% (85 runs sampled) ✓ fast.map() x 58,504 ops/sec ±1.67% (94 runs sampled)
✓ fast.map() v0.0.2a x 69,078 ops/sec ±2.19% (82 runs sampled) ✓ fast.map() v0.0.2a x 57,693 ops/sec ±1.58% (90 runs sampled)
✓ fast.map() v0.0.1 x 70,614 ops/sec ±2.24% (89 runs sampled) ✓ fast.map() v0.0.1 x 57,556 ops/sec ±1.54% (93 runs sampled)
✓ fast.map() v0.0.0 x 71,178 ops/sec ±2.31% (82 runs sampled) ✓ fast.map() v0.0.0 x 58,775 ops/sec ±1.27% (91 runs sampled)
✓ underscore.map() x 69,114 ops/sec ±2.29% (85 runs sampled) ✓ underscore.map() x 60,912 ops/sec ±0.97% (95 runs sampled)
✓ lodash.map() x 68,158 ops/sec ±2.61% (83 runs sampled) ✓ lodash.map() x 56,584 ops/sec ±1.36% (95 runs sampled)
Result: fast.js is 424.79% faster than Array::map(). Result: fast.js is 11.59% faster than Array::map().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .filter() vs fast.filter() (3 items) Native .filter() vs fast.filter() (3 items)
✓ Array::filter() x 2,687,974 ops/sec ±1.89% (89 runs sampled) ✓ Array::filter() x 7,065,353 ops/sec ±1.22% (91 runs sampled)
✓ fast.filter() x 9,718,543 ops/sec ±2.32% (86 runs sampled) ✓ fast.filter() x 9,070,982 ops/sec ±1.70% (92 runs sampled)
✓ underscore.filter() x 3,703,718 ops/sec ±2.23% (80 runs sampled) ✓ underscore.filter() x 5,140,215 ops/sec ±1.24% (92 runs sampled)
✓ lodash.filter() x 8,776,202 ops/sec ±2.34% (85 runs sampled) ✓ lodash.filter() x 8,688,789 ops/sec ±1.77% (92 runs sampled)
Result: fast.js is 261.56% faster than Array::filter(). Result: fast.js is 28.39% faster than Array::filter().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .filter() vs fast.filter() (10 items) Native .filter() vs fast.filter() (10 items)
✓ Array::filter() x 960,911 ops/sec ±1.89% (89 runs sampled) ✓ Array::filter() x 2,815,940 ops/sec ±1.04% (95 runs sampled)
✓ fast.filter() x 3,671,851 ops/sec ±1.67% (89 runs sampled) ✓ fast.filter() x 3,696,307 ops/sec ±1.09% (93 runs sampled)
✓ underscore.filter() x 2,081,775 ops/sec ±1.82% (88 runs sampled) ✓ underscore.filter() x 2,605,165 ops/sec ±1.65% (91 runs sampled)
✓ lodash.filter() x 3,378,668 ops/sec ±1.91% (87 runs sampled) ✓ lodash.filter() x 3,634,600 ops/sec ±1.63% (96 runs sampled)
Result: fast.js is 282.12% faster than Array::filter(). Result: fast.js is 31.26% faster than Array::filter().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .filter() vs fast.filter() (1000 items) Native .filter() vs fast.filter() (1000 items)
✓ Array::filter() x 9,631 ops/sec ±1.70% (89 runs sampled) ✓ Array::filter() x 30,216 ops/sec ±1.15% (93 runs sampled)
✓ fast.filter() x 21,543 ops/sec ±1.62% (91 runs sampled) ✓ fast.filter() x 40,029 ops/sec ±1.11% (93 runs sampled)
✓ underscore.filter() x 21,309 ops/sec ±1.39% (94 runs sampled) ✓ underscore.filter() x 33,927 ops/sec ±1.17% (92 runs sampled)
✓ lodash.filter() x 23,060 ops/sec ±1.19% (92 runs sampled) ✓ lodash.filter() x 38,731 ops/sec ±1.42% (89 runs sampled)
Result: fast.js is 123.68% faster than Array::filter(). Result: fast.js is 32.48% faster than Array::filter().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .reduce() vs fast.reduce() (3 items) Native .reduce() vs fast.reduce() (3 items)
✓ Array::reduce() x 15,683,748 ops/sec ±1.47% (94 runs sampled) ✓ Array::reduce() x 11,448,123 ops/sec ±1.27% (91 runs sampled)
✓ fast.reduce() x 19,822,337 ops/sec ±1.43% (94 runs sampled) ✓ fast.reduce() x 14,271,668 ops/sec ±1.82% (90 runs sampled)
✓ fast.reduce() v0.0.2c x 7,798,030 ops/sec ±1.52% (88 runs sampled) ✓ fast.reduce() v0.0.2c x 7,268,824 ops/sec ±1.43% (92 runs sampled)
✓ fast.reduce() v0.0.2b x 20,292,742 ops/sec ±1.40% (93 runs sampled) ✓ fast.reduce() v0.0.2b x 14,238,850 ops/sec ±1.51% (89 runs sampled)
✓ fast.reduce() v0.0.2a x 15,916,164 ops/sec ±2.12% (88 runs sampled) ✓ fast.reduce() v0.0.2a x 13,255,395 ops/sec ±1.55% (92 runs sampled)
✓ fast.reduce() v0.0.1 x 15,974,800 ops/sec ±1.71% (91 runs sampled) ✓ fast.reduce() v0.0.1 x 13,087,838 ops/sec ±1.57% (90 runs sampled)
✓ fast.reduce() v0.0.0 x 19,908,317 ops/sec ±1.29% (93 runs sampled) ✓ fast.reduce() v0.0.0 x 14,342,174 ops/sec ±1.37% (90 runs sampled)
✓ underscore.reduce() x 7,701,639 ops/sec ±1.24% (90 runs sampled) ✓ underscore.reduce() x 11,807,285 ops/sec ±1.31% (90 runs sampled)
✓ lodash.reduce() x 13,375,185 ops/sec ±1.60% (90 runs sampled) ✓ lodash.reduce() x 11,280,545 ops/sec ±2.15% (86 runs sampled)
Result: fast.js is 26.39% faster than Array::reduce(). Result: fast.js is 24.66% faster than Array::reduce().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .reduce() vs fast.reduce() (10 items) Native .reduce() vs fast.reduce() (10 items)
✓ Array::reduce() x 5,532,866 ops/sec ±1.58% (91 runs sampled) ✓ Array::reduce() x 4,777,570 ops/sec ±1.23% (94 runs sampled)
✓ fast.reduce() x 6,849,642 ops/sec ±1.38% (91 runs sampled) ✓ fast.reduce() x 5,332,362 ops/sec ±1.45% (92 runs sampled)
✓ fast.reduce() v0.0.2c x 3,784,572 ops/sec ±1.22% (88 runs sampled) ✓ fast.reduce() v0.0.2c x 3,440,715 ops/sec ±1.25% (93 runs sampled)
✓ fast.reduce() v0.0.2b x 6,901,023 ops/sec ±1.51% (93 runs sampled) ✓ fast.reduce() v0.0.2b x 5,413,510 ops/sec ±1.67% (92 runs sampled)
✓ fast.reduce() v0.0.2a x 6,270,986 ops/sec ±1.58% (89 runs sampled) ✓ fast.reduce() v0.0.2a x 5,240,041 ops/sec ±1.16% (90 runs sampled)
✓ fast.reduce() v0.0.1 x 6,238,397 ops/sec ±1.62% (92 runs sampled) ✓ fast.reduce() v0.0.1 x 5,255,562 ops/sec ±1.29% (96 runs sampled)
✓ fast.reduce() v0.0.0 x 6,713,360 ops/sec ±1.53% (90 runs sampled) ✓ fast.reduce() v0.0.0 x 5,354,019 ops/sec ±1.83% (89 runs sampled)
✓ underscore.reduce() x 4,256,639 ops/sec ±1.86% (93 runs sampled) ✓ underscore.reduce() x 5,109,578 ops/sec ±1.26% (92 runs sampled)
✓ lodash.reduce() x 5,709,902 ops/sec ±1.44% (89 runs sampled) ✓ lodash.reduce() x 5,073,609 ops/sec ±1.41% (90 runs sampled)
Result: fast.js is 23.80% faster than Array::reduce(). Result: fast.js is 11.61% faster than Array::reduce().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .reduce() vs fast.reduce() (1000 items) Native .reduce() vs fast.reduce() (1000 items)
✓ Array::reduce() x 65,412 ops/sec ±1.86% (90 runs sampled) ✓ Array::reduce() x 61,434 ops/sec ±1.23% (90 runs sampled)
✓ fast.reduce() x 76,379 ops/sec ±2.05% (87 runs sampled) ✓ fast.reduce() x 67,475 ops/sec ±1.56% (94 runs sampled)
✓ fast.reduce() v0.0.2c x 56,781 ops/sec ±1.78% (86 runs sampled) ✓ fast.reduce() v0.0.2c x 50,492 ops/sec ±0.99% (92 runs sampled)
✓ fast.reduce() v0.0.2b x 76,614 ops/sec ±1.81% (87 runs sampled) ✓ fast.reduce() v0.0.2b x 67,793 ops/sec ±1.89% (94 runs sampled)
✓ fast.reduce() v0.0.2a x 76,444 ops/sec ±1.99% (87 runs sampled) ✓ fast.reduce() v0.0.2a x 65,725 ops/sec ±1.15% (91 runs sampled)
✓ fast.reduce() v0.0.1 x 76,110 ops/sec ±2.26% (87 runs sampled) ✓ fast.reduce() v0.0.1 x 65,443 ops/sec ±1.47% (95 runs sampled)
✓ fast.reduce() v0.0.0 x 75,159 ops/sec ±2.35% (88 runs sampled) ✓ fast.reduce() v0.0.0 x 67,457 ops/sec ±1.18% (93 runs sampled)
✓ underscore.reduce() x 73,039 ops/sec ±1.95% (88 runs sampled) ✓ underscore.reduce() x 64,837 ops/sec ±1.86% (90 runs sampled)
✓ lodash.reduce() x 73,019 ops/sec ±2.11% (88 runs sampled) ✓ lodash.reduce() x 66,354 ops/sec ±1.01% (91 runs sampled)
Result: fast.js is 16.77% faster than Array::reduce(). Result: fast.js is 9.83% faster than Array::reduce().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .reduceRight() vs fast.reduceRight() (3 items) Native .reduceRight() vs fast.reduceRight() (3 items)
✓ Array::reduceRight() x 15,471,963 ops/sec ±1.53% (86 runs sampled) ✓ Array::reduceRight() x 5,050,268 ops/sec ±1.41% (90 runs sampled)
✓ fast.reduceRight() x 19,032,688 ops/sec ±1.83% (86 runs sampled) ✓ fast.reduceRight() x 14,434,220 ops/sec ±1.23% (91 runs sampled)
✓ underscore.reduceRight() x 7,094,341 ops/sec ±2.21% (85 runs sampled) ✓ underscore.reduceRight() x 11,518,781 ops/sec ±1.60% (89 runs sampled)
✓ lodash.reduceRight() x 13,209,136 ops/sec ±2.48% (82 runs sampled) ✓ lodash.reduceRight() x 11,960,748 ops/sec ±1.35% (90 runs sampled)
Result: fast.js is 23.01% faster than Array::reduceRight(). Result: fast.js is 185.81% faster than Array::reduceRight().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .reduceRight() vs fast.reduceRight() (10 items) Native .reduceRight() vs fast.reduceRight() (10 items)
✓ Array::reduceRight() x 5,446,631 ops/sec ±1.96% (88 runs sampled) ✓ Array::reduceRight() x 1,891,332 ops/sec ±1.46% (95 runs sampled)
✓ fast.reduceRight() x 6,560,161 ops/sec ±2.04% (86 runs sampled) ✓ fast.reduceRight() x 5,439,232 ops/sec ±1.61% (93 runs sampled)
✓ underscore.reduceRight() x 3,985,044 ops/sec ±1.90% (87 runs sampled) ✓ underscore.reduceRight() x 5,137,310 ops/sec ±1.11% (94 runs sampled)
✓ lodash.reduceRight() x 5,583,454 ops/sec ±1.87% (82 runs sampled) ✓ lodash.reduceRight() x 5,042,319 ops/sec ±1.40% (92 runs sampled)
Result: fast.js is 20.44% faster than Array::reduceRight(). Result: fast.js is 187.59% faster than Array::reduceRight().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .reduceRight() vs fast.reduceRight() (1000 items) Native .reduceRight() vs fast.reduceRight() (1000 items)
✓ Array::reduceRight() x 64,697 ops/sec ±1.93% (87 runs sampled) ✓ Array::reduceRight() x 21,957 ops/sec ±1.61% (93 runs sampled)
✓ fast.reduceRight() x 75,254 ops/sec ±2.07% (84 runs sampled) ✓ fast.reduceRight() x 68,003 ops/sec ±1.36% (92 runs sampled)
✓ underscore.reduceRight() x 69,989 ops/sec ±2.11% (86 runs sampled) ✓ underscore.reduceRight() x 65,353 ops/sec ±1.71% (92 runs sampled)
✓ lodash.reduceRight() x 72,622 ops/sec ±1.90% (83 runs sampled) ✓ lodash.reduceRight() x 66,053 ops/sec ±1.46% (93 runs sampled)
Result: fast.js is 16.32% faster than Array::reduceRight(). Result: fast.js is 209.71% faster than Array::reduceRight().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .forEach() vs fast.forEach() (3 items) Native .forEach() vs fast.forEach() (3 items)
✓ Array::forEach() x 14,740,906 ops/sec ±1.64% (86 runs sampled) ✓ Array::forEach() x 18,862,011 ops/sec ±1.42% (90 runs sampled)
✓ fast.forEach() x 20,231,027 ops/sec ±1.48% (91 runs sampled) ✓ fast.forEach() x 25,753,246 ops/sec ±2.92% (90 runs sampled)
✓ fast.forEach() v0.0.2a x 16,151,689 ops/sec ±1.89% (89 runs sampled) ✓ fast.forEach() v0.0.2a x 23,302,716 ops/sec ±1.35% (94 runs sampled)
✓ fast.forEach() v0.0.1 x 15,639,447 ops/sec ±2.49% (87 runs sampled) ✓ fast.forEach() v0.0.1 x 22,987,411 ops/sec ±1.26% (90 runs sampled)
✓ fast.forEach() v0.0.0 x 20,087,959 ops/sec ±1.65% (85 runs sampled) ✓ fast.forEach() v0.0.0 x 25,803,050 ops/sec ±1.89% (88 runs sampled)
✓ underscore.forEach() x 8,585,706 ops/sec ±1.56% (88 runs sampled) ✓ underscore.forEach() x 19,296,649 ops/sec ±1.27% (89 runs sampled)
✓ lodash.forEach() x 15,508,451 ops/sec ±1.51% (89 runs sampled) ✓ lodash.forEach() x 23,522,116 ops/sec ±1.89% (86 runs sampled)
Result: fast.js is 37.24% faster than Array::forEach(). Result: fast.js is 36.53% faster than Array::forEach().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .forEach() vs fast.forEach() (10 items) Native .forEach() vs fast.forEach() (10 items)
✓ Array::forEach() x 5,804,968 ops/sec ±1.55% (92 runs sampled) ✓ Array::forEach() x 7,889,785 ops/sec ±1.01% (93 runs sampled)
✓ fast.forEach() x 7,111,228 ops/sec ±1.74% (85 runs sampled) ✓ fast.forEach() x 10,107,339 ops/sec ±1.40% (94 runs sampled)
✓ fast.forEach() v0.0.2a x 6,716,808 ops/sec ±1.78% (88 runs sampled) ✓ fast.forEach() v0.0.2a x 9,651,211 ops/sec ±1.03% (93 runs sampled)
✓ fast.forEach() v0.0.1 x 6,534,500 ops/sec ±1.62% (90 runs sampled) ✓ fast.forEach() v0.0.1 x 9,342,417 ops/sec ±1.46% (93 runs sampled)
✓ fast.forEach() v0.0.0 x 7,056,910 ops/sec ±1.76% (88 runs sampled) ✓ fast.forEach() v0.0.0 x 9,865,653 ops/sec ±1.27% (93 runs sampled)
✓ underscore.forEach() x 4,891,206 ops/sec ±1.65% (91 runs sampled) ✓ underscore.forEach() x 9,068,915 ops/sec ±1.85% (89 runs sampled)
✓ lodash.forEach() x 6,467,729 ops/sec ±1.38% (90 runs sampled) ✓ lodash.forEach() x 9,623,522 ops/sec ±1.74% (86 runs sampled)
Result: fast.js is 22.50% faster than Array::forEach(). Result: fast.js is 28.11% faster than Array::forEach().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .forEach() vs fast.forEach() (1000 items) Native .forEach() vs fast.forEach() (1000 items)
✓ Array::forEach() x 69,559 ops/sec ±1.49% (89 runs sampled) ✓ Array::forEach() x 120,477 ops/sec ±1.15% (93 runs sampled)
✓ fast.forEach() x 86,783 ops/sec ±1.58% (87 runs sampled) ✓ fast.forEach() x 147,126 ops/sec ±1.64% (93 runs sampled)
✓ fast.forEach() v0.0.2a x 87,945 ops/sec ±1.35% (93 runs sampled) ✓ fast.forEach() v0.0.2a x 137,031 ops/sec ±1.14% (94 runs sampled)
✓ fast.forEach() v0.0.1 x 87,507 ops/sec ±1.31% (93 runs sampled) ✓ fast.forEach() v0.0.1 x 137,996 ops/sec ±0.94% (97 runs sampled)
✓ fast.forEach() v0.0.0 x 85,654 ops/sec ±1.33% (94 runs sampled) ✓ fast.forEach() v0.0.0 x 141,819 ops/sec ±1.36% (91 runs sampled)
✓ underscore.forEach() x 85,929 ops/sec ±1.49% (92 runs sampled) ✓ underscore.forEach() x 145,858 ops/sec ±1.15% (89 runs sampled)
✓ lodash.forEach() x 82,688 ops/sec ±1.58% (89 runs sampled) ✓ lodash.forEach() x 147,122 ops/sec ±1.34% (94 runs sampled)
Result: fast.js is 24.76% faster than Array::forEach(). Result: fast.js is 22.12% faster than Array::forEach().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .some() vs fast.some() (3 items) Native .some() vs fast.some() (3 items)
✓ Array::some() x 20,074,883 ops/sec ±1.74% (88 runs sampled) ✓ Array::some() x 19,198,053 ops/sec ±1.19% (90 runs sampled)
✓ fast.some() x 31,082,981 ops/sec ±1.54% (90 runs sampled) ✓ fast.some() x 26,284,590 ops/sec ±1.69% (92 runs sampled)
✓ underscore.some() x 9,413,222 ops/sec ±1.86% (86 runs sampled) ✓ underscore.some() x 18,364,982 ops/sec ±2.12% (86 runs sampled)
✓ lodash.some() x 22,008,017 ops/sec ±1.65% (93 runs sampled) ✓ lodash.some() x 23,982,422 ops/sec ±1.58% (91 runs sampled)
Result: fast.js is 54.84% faster than Array::some(). Result: fast.js is 36.91% faster than Array::some().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .some() vs fast.some() (10 items) Native .some() vs fast.some() (10 items)
✓ Array::some() x 7,954,257 ops/sec ±1.54% (92 runs sampled) ✓ Array::some() x 7,926,110 ops/sec ±1.10% (94 runs sampled)
✓ fast.some() x 10,667,149 ops/sec ±1.54% (90 runs sampled) ✓ fast.some() x 10,346,215 ops/sec ±1.48% (94 runs sampled)
✓ underscore.some() x 5,746,952 ops/sec ±2.06% (84 runs sampled) ✓ underscore.some() x 9,236,409 ops/sec ±1.18% (94 runs sampled)
✓ lodash.some() x 8,976,092 ops/sec ±1.54% (93 runs sampled) ✓ lodash.some() x 9,866,959 ops/sec ±1.06% (92 runs sampled)
Result: fast.js is 34.11% faster than Array::some(). Result: fast.js is 30.53% faster than Array::some().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .some() vs fast.some() (1000 items) Native .some() vs fast.some() (1000 items)
✓ Array::some() x 100,583 ops/sec ±1.63% (91 runs sampled) ✓ Array::some() x 121,734 ops/sec ±1.55% (89 runs sampled)
✓ fast.some() x 140,753 ops/sec ±1.36% (92 runs sampled) ✓ fast.some() x 148,890 ops/sec ±1.06% (95 runs sampled)
✓ underscore.some() x 138,410 ops/sec ±1.10% (95 runs sampled) ✓ underscore.some() x 148,171 ops/sec ±1.40% (94 runs sampled)
✓ lodash.some() x 142,151 ops/sec ±1.12% (94 runs sampled) ✓ lodash.some() x 146,299 ops/sec ±1.39% (94 runs sampled)
Result: fast.js is 39.94% faster than Array::some(). Result: fast.js is 22.31% faster than Array::some().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .every() vs fast.every() (3 items) Native .every() vs fast.every() (3 items)
✓ Array::every() x 20,280,775 ops/sec ±1.11% (91 runs sampled) ✓ Array::every() x 18,887,683 ops/sec ±1.57% (92 runs sampled)
✓ fast.every() x 31,508,597 ops/sec ±1.17% (95 runs sampled) ✓ fast.every() x 25,809,585 ops/sec ±1.41% (90 runs sampled)
✓ underscore.every() x 9,786,359 ops/sec ±1.36% (92 runs sampled) ✓ underscore.every() x 17,607,414 ops/sec ±2.14% (87 runs sampled)
✓ lodash.every() x 22,179,393 ops/sec ±1.27% (95 runs sampled) ✓ lodash.every() x 23,567,702 ops/sec ±1.42% (90 runs sampled)
Result: fast.js is 55.36% faster than Array::every(). Result: fast.js is 36.65% faster than Array::every().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .every() vs fast.every() (10 items) Native .every() vs fast.every() (10 items)
✓ Array::every() x 7,811,186 ops/sec ±1.46% (92 runs sampled) ✓ Array::every() x 8,022,308 ops/sec ±1.11% (94 runs sampled)
✓ fast.every() x 10,933,871 ops/sec ±1.63% (90 runs sampled) ✓ fast.every() x 9,553,291 ops/sec ±1.37% (93 runs sampled)
✓ underscore.every() x 5,858,038 ops/sec ±1.82% (88 runs sampled) ✓ underscore.every() x 8,536,085 ops/sec ±1.33% (92 runs sampled)
✓ lodash.every() x 9,381,752 ops/sec ±1.70% (90 runs sampled) ✓ lodash.every() x 9,302,267 ops/sec ±1.59% (92 runs sampled)
Result: fast.js is 39.98% faster than Array::every(). Result: fast.js is 19.08% faster than Array::every().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .every() vs fast.every() (1000 items) Native .every() vs fast.every() (1000 items)
✓ Array::every() x 100,687 ops/sec ±1.76% (85 runs sampled) ✓ Array::every() x 121,815 ops/sec ±0.98% (94 runs sampled)
✓ fast.every() x 140,693 ops/sec ±1.58% (88 runs sampled) ✓ fast.every() x 143,333 ops/sec ±1.87% (90 runs sampled)
✓ underscore.every() x 137,180 ops/sec ±1.70% (90 runs sampled) ✓ underscore.every() x 144,407 ops/sec ±1.28% (93 runs sampled)
✓ lodash.every() x 141,884 ops/sec ±1.75% (92 runs sampled) ✓ lodash.every() x 141,416 ops/sec ±1.45% (94 runs sampled)
Result: fast.js is 39.73% faster than Array::every(). Result: fast.js is 17.66% faster than Array::every().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .concat() vs fast.concat() (3 items) Native .concat() vs fast.concat() (3 items)
✓ Array::concat() x 3,612,985 ops/sec ±1.95% (89 runs sampled) ✓ Array::concat() x 3,469,291 ops/sec ±1.30% (94 runs sampled)
✓ fast.concat() x 14,988,334 ops/sec ±2.57% (85 runs sampled) ✓ fast.concat() x 16,645,128 ops/sec ±1.36% (92 runs sampled)
Result: fast.js is 314.85% faster than Array::concat(). Result: fast.js is 379.78% faster than Array::concat().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .concat() vs fast.concat() (10 items) Native .concat() vs fast.concat() (10 items)
✓ Array::concat() x 2,614,419 ops/sec ±2.21% (83 runs sampled) ✓ Array::concat() x 2,627,050 ops/sec ±1.54% (91 runs sampled)
✓ fast.concat() x 7,832,480 ops/sec ±2.19% (79 runs sampled) ✓ fast.concat() x 9,218,335 ops/sec ±1.60% (93 runs sampled)
Result: fast.js is 199.59% faster than Array::concat(). Result: fast.js is 250.90% faster than Array::concat().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .concat() vs fast.concat() (1000 items) Native .concat() vs fast.concat() (1000 items)
✓ Array::concat() x 796,891 ops/sec ±2.76% (80 runs sampled) ✓ Array::concat() x 636,791 ops/sec ±1.30% (92 runs sampled)
✓ fast.concat() x 210,447 ops/sec ±2.03% (84 runs sampled) ✓ fast.concat() x 247,232 ops/sec ±1.08% (95 runs sampled)
Result: fast.js is 73.59% slower than Array::concat(). Result: fast.js is 61.18% slower than Array::concat().
Node.js version 7.9, Apr. 2017 Node.js version 9.9, Mar. 2018
Native .concat() vs fast.concat() (1000 items, using apply) Native .concat() vs fast.concat() (1000 items, using apply)
✓ Array::concat() x 95,388 ops/sec ±2.02% (86 runs sampled) ✓ Array::concat() x 89,067 ops/sec ±1.29% (94 runs sampled)
✓ fast.concat() x 132,932 ops/sec ±1.89% (86 runs sampled) ✓ fast.concat() x 181,502 ops/sec ±2.24% (91 runs sampled)
Result: fast.js is 39.36% faster than Array::concat(). Result: fast.js is 103.78% faster than Array::concat().
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment