Open drewbitt opened 6 months ago
Hi. I updated all the contender's versions and tested them on my machine(Macbook Pro M2) and these are the results.
"lodash": "4.17.21",
"rambda": "9.1.0",
"ramda": "0.29.1",
"remeda": "1.47.1"
node version: 20.10
seems that the bold claims that ts-belt said are still valid I guess?
• ./complex/map-filter-reduce.js:
• map → filter → reduce ......
✔ @mobily/ts-belt 200,706.06 ops/sec ±1.78% (95 runs) fastest
✔ remeda 23,511.03 ops/sec ±5.01% (85 runs) -88.29%
✔ ramda 121,550.03 ops/sec ±3.36% (93 runs) -39.44%
✔ rambda 140,124.56 ops/sec ±1.69% (91 runs) -30.18%
✔ lodash/fp 67,954.03 ops/sec ±1.98% (94 runs) -66.14%
✔ native 70,668.41 ops/sec ±0.61% (97 runs) -64.79%
➔ Fastest is @mobily/ts-belt
• ./complex/deepFlat-uniq-groupBy.js:
• deepFlat → uniq → groupBy .....
✔ @mobily/ts-belt 2,457,612.39 ops/sec ±4.52% (90 runs) fastest
✔ remeda 426,752.43 ops/sec ±3.43% (95 runs) -82.64%
✔ ramda 286,672.74 ops/sec ±2.58% (89 runs) -88.34%
✔ rambda 1,324,157.91 ops/sec ±2.87% (93 runs) -46.12%
✔ lodash/fp 535,414.50 ops/sec ±4.50% (86 runs) -78.21%
➔ Fastest is @mobily/ts-belt
• ./simple/sort.js:
• sort (single function call).....
✔ @mobily/ts-belt 10,466,953.73 ops/sec ±4.07% (89 runs) fastest
✔ remeda 1,671,376.00 ops/sec ±1.58% (95 runs) -84.03%
✔ ramda 3,366,208.27 ops/sec ±0.85% (98 runs) -67.84%
✔ rambda 3,412,809.85 ops/sec ±0.61% (97 runs) -67.39%
✔ native 3,412,869.41 ops/sec ±1.57% (93 runs) -67.39%
➔ Fastest is @mobily/ts-belt
• sort (function call inside `pipe`).....
✔ @mobily/ts-belt 8,809,714.25 ops/sec ±1.13% (97 runs) fastest
✔ remeda 1,473,082.22 ops/sec ±2.27% (94 runs) -83.28%
✔ ramda 1,507,070.74 ops/sec ±2.69% (89 runs) -82.89%
✔ rambda 2,907,792.40 ops/sec ±1.39% (92 runs) -66.99%
✔ native 3,124,722.40 ops/sec ±2.97% (91 runs) -64.53%
➔ Fastest is @mobily/ts-belt
• ./simple/unzip.js:
• unzip (single function call)....
✔ @mobily/ts-belt 26,888,255.75 ops/sec ±8.74% (80 runs) fastest
✔ ramda 7,095,954.59 ops/sec ±2.77% (90 runs) -73.61%
✔ rambda 7,533,001.33 ops/sec ±2.29% (92 runs) -71.98%
✔ lodash/fp 2,155,259.39 ops/sec ±5.28% (84 runs) -91.98%
➔ Fastest is @mobily/ts-belt
• unzip (function call inside `pipe`)....
✔ @mobily/ts-belt 24,736,131.32 ops/sec ±3.25% (93 runs) fastest
✔ ramda 2,347,006.26 ops/sec ±3.06% (90 runs) -90.51%
✔ rambda 6,246,303.36 ops/sec ±3.73% (90 runs) -74.75%
✔ lodash/fp 1,948,104.50 ops/sec ±1.00% (91 runs) -92.12%
➔ Fastest is @mobily/ts-belt
• ./simple/flat.js:
• flat (single function call).....
✔ @mobily/ts-belt 27,959,037.52 ops/sec ±7.98% (92 runs) fastest
✔ remeda 2,885,512.14 ops/sec ±2.22% (94 runs) -89.68%
✔ ramda 2,132,851.06 ops/sec ±2.46% (90 runs) -92.37%
✔ lodash/fp 16,332,737.01 ops/sec ±3.32% (84 runs) -41.58%
✔ native 1,340,280.93 ops/sec ±1.92% (95 runs) -95.21%
➔ Fastest is @mobily/ts-belt
• flat (function call inside `pipe`)... ..
✔ @mobily/ts-belt 26,861,683.11 ops/sec ±1.49% (95 runs) fastest
✔ remeda 2,005,725.19 ops/sec ±7.30% (88 runs) -92.53%
✔ ramda 1,297,528.91 ops/sec ±3.27% (94 runs) -95.17%
✔ lodash/fp 7,516,347.97 ops/sec ±0.77% (95 runs) -72.02%
✔ native 1,321,531.75 ops/sec ±1.20% (96 runs) -95.08%
➔ Fastest is @mobily/ts-belt
• ./simple/dropWhile.js:
• dropWhile (single function call)....
✔ @mobily/ts-belt 42,437,095.93 ops/sec ±0.74% (94 runs) -22.33%
✔ ramda 28,448,408.62 ops/sec ±1.51% (94 runs) -47.93%
✔ rambda 54,636,355.51 ops/sec ±2.51% (93 runs) fastest
✔ lodash/fp 12,455,180.75 ops/sec ±1.56% (88 runs) -77.20%
➔ Fastest is rambda
• dropWhile (function call inside `pipe`)....
✔ @mobily/ts-belt 28,578,309.41 ops/sec ±3.63% (88 runs) fastest
✔ ramda 2,547,489.09 ops/sec ±1.00% (89 runs) -91.09%
✔ rambda 16,897,510.76 ops/sec ±0.65% (94 runs) -40.87%
✔ lodash/fp 1,070,406.39 ops/sec ±1.65% (92 runs) -96.25%
➔ Fastest is @mobily/ts-belt
• ./simple/takeWhile.js:
• takeWhile (single function call).....
✔ @mobily/ts-belt 57,620,176.56 ops/sec ±0.95% (94 runs) -24.97%
✔ remeda 3,067,943.47 ops/sec ±1.79% (92 runs) -96.00%
✔ ramda 31,358,477.45 ops/sec ±1.03% (91 runs) -59.17%
✔ rambda 76,793,772.48 ops/sec ±3.77% (87 runs) fastest
✔ lodash/fp 13,533,138.75 ops/sec ±2.00% (87 runs) -82.38%
➔ Fastest is rambda
• takeWhile (function call inside `pipe`).....
✔ @mobily/ts-belt 36,000,544.77 ops/sec ±2.25% (93 runs) fastest
✔ remeda 2,428,210.45 ops/sec ±4.45% (90 runs) -93.26%
✔ ramda 2,614,963.11 ops/sec ±1.52% (95 runs) -92.74%
✔ rambda 19,262,417.41 ops/sec ±1.15% (94 runs) -46.49%
✔ lodash/fp 878,022.01 ops/sec ±4.17% (84 runs) -97.56%
➔ Fastest is @mobily/ts-belt
• ./simple/difference.js:
• difference (single function call).....
✔ @mobily/ts-belt 13,101,248.43 ops/sec ±3.12% (89 runs) fastest
✔ remeda 2,409,053.54 ops/sec ±1.84% (92 runs) -81.61%
✔ ramda 6,324,022.65 ops/sec ±1.87% (94 runs) -51.73%
✔ rambda 3,032,141.15 ops/sec ±4.36% (90 runs) -76.86%
✔ lodash/fp 4,590,218.75 ops/sec ±1.49% (92 runs) -64.96%
➔ Fastest is @mobily/ts-belt
• difference (function call inside `pipe`).....
✔ @mobily/ts-belt 11,139,175.77 ops/sec ±4.01% (87 runs) fastest
✔ remeda 1,865,015.32 ops/sec ±2.54% (90 runs) -83.26%
✔ ramda 1,763,091.53 ops/sec ±4.36% (84 runs) -84.17%
✔ rambda 2,874,026.54 ops/sec ±1.23% (94 runs) -74.20%
✔ lodash/fp 1,006,881.58 ops/sec ±1.45% (95 runs) -90.96%
➔ Fastest is @mobily/ts-belt
• ./simple/deepFlat.js:
• deepFlat (single function call)......
✔ @mobily/ts-belt 20,255,675.34 ops/sec ±0.74% (97 runs) fastest
✔ remeda 1,381,320.77 ops/sec ±2.09% (94 runs) -93.18%
✔ ramda 857,668.49 ops/sec ±1.48% (91 runs) -95.77%
✔ rambda 17,049,296.10 ops/sec ±0.45% (98 runs) -15.83%
✔ lodash/fp 7,491,946.07 ops/sec ±1.24% (96 runs) -63.01%
✔ native 1,127,784.53 ops/sec ±0.22% (97 runs) -94.43%
➔ Fastest is @mobily/ts-belt
• deepFlat (function call inside `pipe`)......
✔ @mobily/ts-belt 19,061,404.06 ops/sec ±1.77% (94 runs) fastest
✔ remeda 1,111,547.24 ops/sec ±1.40% (97 runs) -94.17%
✔ ramda 671,501.80 ops/sec ±2.37% (95 runs) -96.48%
✔ rambda 10,919,783.75 ops/sec ±1.41% (95 runs) -42.71%
✔ lodash/fp 4,968,973.20 ops/sec ±1.00% (99 runs) -73.93%
✔ native 1,108,499.14 ops/sec ±0.37% (96 runs) -94.18%
➔ Fastest is @mobily/ts-belt
• ./simple/reduce.js:
• reduce (single function call)......
✔ @mobily/ts-belt 41,764,086.40 ops/sec ±1.00% (99 runs) fastest
✔ remeda 2,585,955.77 ops/sec ±1.40% (94 runs) -93.81%
✔ ramda 11,452,786.15 ops/sec ±1.40% (92 runs) -72.58%
✔ rambda 13,685,717.85 ops/sec ±1.71% (97 runs) -67.23%
✔ lodash/fp 10,761,561.16 ops/sec ±1.73% (85 runs) -74.23%
✔ native 17,350,110.25 ops/sec ±1.56% (94 runs) -58.46%
➔ Fastest is @mobily/ts-belt
• reduce (function call inside `pipe`)......
✔ @mobily/ts-belt 25,231,876.48 ops/sec ±1.35% (98 runs) fastest
✔ remeda 2,214,353.16 ops/sec ±3.77% (93 runs) -91.22%
✔ ramda 2,297,437.05 ops/sec ±0.50% (96 runs) -90.89%
✔ rambda 6,952,329.37 ops/sec ±0.72% (95 runs) -72.45%
✔ lodash/fp 1,104,095.03 ops/sec ±1.27% (97 runs) -95.62%
✔ native 14,522,180.38 ops/sec ±0.92% (98 runs) -42.45%
➔ Fastest is @mobily/ts-belt
• ./simple/reject.js:
• reject (single function call).....
✔ @mobily/ts-belt 37,949,200.56 ops/sec ±2.50% (88 runs) -12.79%
✔ remeda 2,648,698.04 ops/sec ±0.99% (95 runs) -93.91%
✔ ramda 27,026,860.62 ops/sec ±1.64% (92 runs) -37.89%
✔ rambda 43,512,668.62 ops/sec ±1.65% (96 runs) fastest
✔ lodash/fp 7,677,170.30 ops/sec ±0.86% (95 runs) -82.36%
➔ Fastest is rambda
• reject (function call inside `pipe`).....
✔ @mobily/ts-belt 25,851,090.13 ops/sec ±2.04% (92 runs) fastest
✔ remeda 1,890,629.81 ops/sec ±2.31% (96 runs) -92.69%
✔ ramda 2,769,972.54 ops/sec ±1.15% (96 runs) -89.28%
✔ rambda 15,911,025.63 ops/sec ±1.21% (96 runs) -38.45%
✔ lodash/fp 1,019,031.80 ops/sec ±1.33% (98 runs) -96.06%
➔ Fastest is @mobily/ts-belt
• ./simple/intersection.js:
• intersection (single function call).....
✔ @mobily/ts-belt 14,077,584.02 ops/sec ±3.30% (93 runs) fastest
✔ remeda 2,484,022.94 ops/sec ±2.00% (96 runs) -82.35%
✔ ramda 2,928,871.08 ops/sec ±1.80% (88 runs) -79.19%
✔ rambda 7,830,327.78 ops/sec ±1.01% (96 runs) -44.38%
✔ lodash/fp 4,479,883.32 ops/sec ±1.29% (97 runs) -68.18%
➔ Fastest is @mobily/ts-belt
• intersection (function call inside `pipe`).....
✔ @mobily/ts-belt 11,895,734.88 ops/sec ±1.89% (94 runs) fastest
✔ remeda 1,918,402.34 ops/sec ±1.99% (99 runs) -83.87%
✔ ramda 1,410,803.25 ops/sec ±1.80% (94 runs) -88.14%
✔ rambda 6,010,407.97 ops/sec ±0.29% (97 runs) -49.47%
✔ lodash/fp 944,214.45 ops/sec ±1.60% (93 runs) -92.06%
➔ Fastest is @mobily/ts-belt
• ./simple/intersperse.js:
• intersperse (single function call)...
✔ @mobily/ts-belt 37,360,790.50 ops/sec ±0.64% (94 runs) -8.59%
✔ ramda 39,653,651.32 ops/sec ±3.66% (88 runs) -2.98%
✔ rambda 40,871,320.59 ops/sec ±1.30% (93 runs) fastest
➔ Fastest is rambda,ramda
• intersperse (function call inside `pipe`)...
✔ @mobily/ts-belt 25,251,120.47 ops/sec ±3.60% (92 runs) fastest
✔ ramda 2,837,801.37 ops/sec ±1.12% (96 runs) -88.76%
✔ rambda 15,926,725.23 ops/sec ±1.22% (95 runs) -36.93%
➔ Fastest is @mobily/ts-belt
• ./simple/flatMap.js:
• flatMap (single function call).....
✔ @mobily/ts-belt 28,725,288.26 ops/sec ±0.87% (98 runs) fastest
✔ remeda 1,589,993.41 ops/sec ±2.77% (94 runs) -94.46%
✔ ramda 1,787,673.58 ops/sec ±1.11% (96 runs) -93.78%
✔ rambda 5,280,070.90 ops/sec ±0.87% (98 runs) -81.62%
✔ lodash/fp 5,860,647.31 ops/sec ±0.87% (97 runs) -79.60%
➔ Fastest is @mobily/ts-belt
• flatMap (function call inside `pipe`).....
✔ @mobily/ts-belt 22,626,123.96 ops/sec ±1.76% (99 runs) fastest
✔ remeda 1,863,005.52 ops/sec ±3.01% (93 runs) -91.77%
✔ ramda 1,076,960.09 ops/sec ±4.16% (91 runs) -95.24%
✔ rambda 4,265,574.92 ops/sec ±0.42% (97 runs) -81.15%
✔ lodash/fp 989,568.46 ops/sec ±1.50% (97 runs) -95.63%
➔ Fastest is @mobily/ts-belt
• ./simple/fromPairs.js:
• fromPairs (single function call)......
✔ @mobily/ts-belt 19,582,522.68 ops/sec ±0.44% (96 runs) fastest
✔ remeda 3,173,443.93 ops/sec ±2.26% (97 runs) -83.79%
✔ ramda 9,627,316.08 ops/sec ±1.68% (92 runs) -50.84%
✔ rambda 17,298,778.87 ops/sec ±0.54% (98 runs) -11.66%
✔ lodash/fp 15,261,690.75 ops/sec ±1.21% (95 runs) -22.06%
✔ native 3,454,698.18 ops/sec ±0.29% (96 runs) -82.36%
➔ Fastest is @mobily/ts-belt
• fromPairs (function call inside `pipe`)......
✔ @mobily/ts-belt 18,618,109.97 ops/sec ±0.85% (93 runs) fastest
✔ remeda 3,050,558.62 ops/sec ±1.73% (95 runs) -83.62%
✔ ramda 2,851,191.38 ops/sec ±0.59% (99 runs) -84.69%
✔ rambda 11,436,109.33 ops/sec ±0.86% (95 runs) -38.58%
✔ lodash/fp 3,129,354.51 ops/sec ±1.58% (96 runs) -83.19%
✔ native 3,293,230.44 ops/sec ±0.58% (97 runs) -82.31%
➔ Fastest is @mobily/ts-belt
• ./simple/union.js:
• union (single function call)....
✔ @mobily/ts-belt 13,284,856.63 ops/sec ±3.36% (95 runs) fastest
✔ ramda 1,309,274.47 ops/sec ±2.01% (95 runs) -90.14%
✔ rambda 7,064,489.50 ops/sec ±1.04% (93 runs) -46.82%
✔ lodash/fp 5,014,892.85 ops/sec ±0.82% (96 runs) -62.25%
➔ Fastest is @mobily/ts-belt
• union (function call inside `pipe`)....
✔ @mobily/ts-belt 11,678,317.62 ops/sec ±1.18% (93 runs) fastest
✔ ramda 867,447.79 ops/sec ±1.22% (99 runs) -92.57%
✔ rambda 5,777,326.75 ops/sec ±1.51% (97 runs) -50.53%
✔ lodash/fp 959,690.94 ops/sec ±3.01% (90 runs) -91.78%
➔ Fastest is @mobily/ts-belt
• ./simple/groupBy.js:
• groupBy (single function call).....
✔ @mobily/ts-belt 6,956,489.79 ops/sec ±8.58% (98 runs) -3.51%
✔ remeda 1,872,247.43 ops/sec ±2.14% (96 runs) -74.03%
✔ ramda 1,337,111.06 ops/sec ±1.33% (90 runs) -81.45%
✔ rambda 7,209,711.48 ops/sec ±2.49% (93 runs) fastest
✔ lodash/fp 3,792,787.87 ops/sec ±1.73% (98 runs) -47.39%
➔ Fastest is rambda
• groupBy (function call inside `pipe`).....
✔ @mobily/ts-belt 6,712,488.31 ops/sec ±0.43% (97 runs) fastest
✔ remeda 1,741,097.16 ops/sec ±0.29% (97 runs) -74.06%
✔ ramda 913,548.07 ops/sec ±0.65% (98 runs) -86.39%
✔ rambda 5,496,694.24 ops/sec ±2.24% (97 runs) -18.11%
✔ lodash/fp 891,187.64 ops/sec ±1.50% (95 runs) -86.72%
➔ Fastest is @mobily/ts-belt
• ./simple/zip.js:
• zip (single function call).....
✔ @mobily/ts-belt 24,854,244.64 ops/sec ±0.91% (99 runs) fastest
✔ remeda 2,838,620.30 ops/sec ±2.56% (94 runs) -88.58%
✔ ramda 22,034,027.23 ops/sec ±2.91% (89 runs) -11.35%
✔ rambda 23,491,523.19 ops/sec ±2.56% (96 runs) -5.48%
✔ lodash/fp 4,312,363.37 ops/sec ±2.26% (94 runs) -82.65%
➔ Fastest is @mobily/ts-belt
• zip (function call inside `pipe`).....
✔ @mobily/ts-belt 19,732,808.08 ops/sec ±1.99% (90 runs) fastest
✔ remeda 2,534,144.20 ops/sec ±0.28% (97 runs) -87.16%
✔ ramda 2,710,528.09 ops/sec ±1.56% (96 runs) -86.26%
✔ rambda 12,309,388.36 ops/sec ±1.03% (97 runs) -37.62%
✔ lodash/fp 1,027,718.88 ops/sec ±1.75% (97 runs) -94.79%
➔ Fastest is @mobily/ts-belt
• ./simple/forEach.js:
• forEach (single function call)......
✔ @mobily/ts-belt 86,238,053.34 ops/sec ±2.09% (95 runs) -41.34%
✔ remeda 2,988,198.10 ops/sec ±1.45% (95 runs) -97.97%
✔ ramda 133,379,669.52 ops/sec ±0.90% (93 runs) -9.27%
✔ rambda 147,003,442.03 ops/sec ±1.20% (98 runs) fastest
✔ lodash/fp 9,479,719.72 ops/sec ±2.13% (95 runs) -93.55%
✔ native 24,588,194.81 ops/sec ±0.86% (95 runs) -83.27%
➔ Fastest is rambda
• forEach (function call inside `pipe`)......
✔ @mobily/ts-belt 49,701,088.33 ops/sec ±0.80% (96 runs) fastest
✔ remeda 1,907,688.69 ops/sec ±1.43% (98 runs) -96.16%
✔ ramda 3,038,196.42 ops/sec ±0.30% (96 runs) -93.89%
✔ rambda 22,043,903.93 ops/sec ±0.93% (97 runs) -55.65%
✔ lodash/fp 1,075,457.25 ops/sec ±1.97% (92 runs) -97.84%
✔ native 17,938,006.28 ops/sec ±1.40% (98 runs) -63.91%
➔ Fastest is @mobily/ts-belt
• ./simple/uniq.js:
• uniq (single function call).....
✔ @mobily/ts-belt 15,767,874.39 ops/sec ±0.99% (94 runs) -16.96%
✔ remeda 2,195,101.31 ops/sec ±1.23% (94 runs) -88.44%
✔ ramda 1,149,864.72 ops/sec ±1.55% (92 runs) -93.94%
✔ rambda 2,295,226.20 ops/sec ±2.22% (92 runs) -87.91%
✔ lodash/fp 18,987,655.03 ops/sec ±0.30% (99 runs) fastest
➔ Fastest is lodash/fp
• uniq (function call inside `pipe`).....
✔ @mobily/ts-belt 13,475,975.40 ops/sec ±0.89% (97 runs) fastest
✔ remeda 1,923,825.66 ops/sec ±1.33% (96 runs) -85.72%
✔ ramda 871,163.57 ops/sec ±1.02% (95 runs) -93.54%
✔ rambda 2,198,652.49 ops/sec ±2.32% (93 runs) -83.68%
✔ lodash/fp 8,297,997.04 ops/sec ±0.23% (96 runs) -38.42%
➔ Fastest is @mobily/ts-belt
• ./simple/toPairs.js:
• toPairs (single function call)......
✔ @mobily/ts-belt 43,080,523.26 ops/sec ±1.14% (94 runs) -18.39%
✔ remeda 3,459,299.15 ops/sec ±2.41% (94 runs) -93.45%
✔ ramda 12,433,642.26 ops/sec ±0.56% (94 runs) -76.45%
✔ rambda 52,787,824.97 ops/sec ±0.93% (98 runs) fastest
✔ lodash/fp 12,906,073.81 ops/sec ±3.66% (94 runs) -75.55%
✔ native 52,223,395.33 ops/sec ±2.87% (95 runs) -1.07%
➔ Fastest is rambda
• toPairs (function call inside `pipe`)......
✔ @mobily/ts-belt 38,382,974.34 ops/sec ±0.55% (98 runs) fastest
✔ remeda 3,417,009.05 ops/sec ±1.15% (97 runs) -91.10%
✔ ramda 3,059,257.09 ops/sec ±1.28% (95 runs) -92.03%
✔ rambda 20,205,084.23 ops/sec ±0.95% (97 runs) -47.36%
✔ lodash/fp 6,497,391.86 ops/sec ±0.50% (96 runs) -83.07%
✔ native 37,780,486.65 ops/sec ±0.44% (95 runs) -1.57%
➔ Fastest is @mobily/ts-belt
• ./simple/map.js:
• map (single function call)......
✔ @mobily/ts-belt 54,912,486.07 ops/sec ±0.82% (97 runs) -14.99%
✔ remeda 2,975,826.10 ops/sec ±1.40% (94 runs) -95.39%
✔ ramda 43,052,471.08 ops/sec ±1.90% (93 runs) -33.35%
✔ rambda 64,596,288.86 ops/sec ±3.01% (86 runs) fastest
✔ lodash/fp 12,936,404.92 ops/sec ±0.28% (97 runs) -79.97%
✔ native 18,881,873.43 ops/sec ±0.45% (96 runs) -70.77%
➔ Fastest is rambda
• map (function call inside `pipe`)......
✔ @mobily/ts-belt 33,312,294.93 ops/sec ±0.74% (99 runs) fastest
✔ remeda 1,904,673.46 ops/sec ±0.79% (98 runs) -94.28%
✔ ramda 2,793,550.41 ops/sec ±1.23% (99 runs) -91.61%
✔ rambda 17,023,618.47 ops/sec ±2.38% (93 runs) -48.90%
✔ lodash/fp 1,074,147.98 ops/sec ±1.31% (96 runs) -96.78%
✔ native 14,965,987.12 ops/sec ±1.70% (96 runs) -55.07%
➔ Fastest is @mobily/ts-belt
• ./simple/filter.js:
• filter (single function call)......
✔ @mobily/ts-belt 43,806,190.96 ops/sec ±0.42% (99 runs) -8.57%
✔ remeda 2,533,240.72 ops/sec ±3.38% (92 runs) -94.71%
✔ ramda 34,022,166.40 ops/sec ±1.93% (90 runs) -28.99%
✔ rambda 47,911,746.77 ops/sec ±2.16% (91 runs) fastest
✔ lodash/fp 8,257,727.82 ops/sec ±0.99% (96 runs) -82.76%
✔ native 17,473,928.93 ops/sec ±0.26% (97 runs) -63.53%
➔ Fastest is rambda
• filter (function call inside `pipe`)......
✔ @mobily/ts-belt 32,081,789.02 ops/sec ±1.82% (96 runs) fastest
✔ remeda 1,840,693.56 ops/sec ±2.21% (95 runs) -94.26%
✔ ramda 2,775,768.07 ops/sec ±1.88% (96 runs) -91.35%
✔ rambda 16,996,791.85 ops/sec ±0.91% (95 runs) -47.02%
✔ lodash/fp 847,919.63 ops/sec ±4.37% (85 runs) -97.36%
✔ native 13,979,054.79 ops/sec ±0.63% (92 runs) -56.43%
➔ Fastest is @mobily/ts-belt
• ./simple/find.js:
• find (single function call)......
✔ @mobily/ts-belt 81,592,745.00 ops/sec ±2.54% (96 runs) -47.23%
✔ remeda 3,208,070.61 ops/sec ±0.88% (97 runs) -97.93%
✔ ramda 144,341,116.76 ops/sec ±1.04% (93 runs) -6.65%
✔ rambda 154,630,881.98 ops/sec ±0.26% (92 runs) fastest
✔ lodash/fp 9,922,550.04 ops/sec ±0.69% (95 runs) -93.58%
✔ native 32,855,689.44 ops/sec ±1.00% (94 runs) -78.75%
➔ Fastest is rambda
• find (function call inside `pipe`)......
✔ @mobily/ts-belt 50,847,365.81 ops/sec ±2.87% (93 runs) fastest
✔ remeda 2,087,136.81 ops/sec ±1.28% (99 runs) -95.90%
✔ ramda 2,981,162.49 ops/sec ±1.01% (97 runs) -94.14%
✔ rambda 21,875,299.55 ops/sec ±1.42% (96 runs) -56.98%
✔ lodash/fp 1,010,251.93 ops/sec ±1.54% (95 runs) -98.01%
✔ native 22,051,538.19 ops/sec ±2.57% (95 runs) -56.63%
➔ Fastest is @mobily/ts-belt
• ./simple/splitEvery.js:
• splitEvery/chunk (single function call).....
✔ @mobily/ts-belt 23,552,152.73 ops/sec ±8.92% (87 runs) fastest
✔ remeda 2,685,696.05 ops/sec ±1.90% (92 runs) -88.60%
✔ ramda 10,741,815.03 ops/sec ±0.50% (92 runs) -54.39%
✔ rambda 16,678,616.06 ops/sec ±2.44% (90 runs) -29.18%
✔ lodash/fp 12,395,255.08 ops/sec ±2.73% (87 runs) -47.37%
➔ Fastest is @mobily/ts-belt
• splitEvery/chunk (function call inside `pipe`).....
✔ @mobily/ts-belt 19,408,226.09 ops/sec ±2.72% (93 runs) fastest
✔ remeda 2,755,891.48 ops/sec ±0.81% (94 runs) -85.80%
✔ ramda 2,124,838.54 ops/sec ±1.68% (98 runs) -89.05%
✔ rambda 10,072,925.82 ops/sec ±1.89% (96 runs) -48.10%
✔ lodash/fp 1,104,293.72 ops/sec ±0.84% (94 runs) -94.31%
➔ Fastest is @mobily/ts-belt
Very very different results than mine also on a Macbook M2 Pro for Remeda, but that may be the nature of benchmarks. Nice job @JUSTIVE
maybe the varied result caused by node version. I'll match to yours and check again.
I re-checked with node 18.19, not much difference from above. Which remeda version are you using? I see some rambda results beat ts-belt, but nothing from remeda. To clarify, I appended the version to each library's name.
• ./complex/map-filter-reduce.js:
• map → filter → reduce ......
✔ @mobily/ts-belt 4.0.0-rc.5 274,086.29 ops/sec ±0.41% (99 runs) fastest
✔ remeda 1.47.1 28,327.85 ops/sec ±1.87% (92 runs) -89.66%
✔ ramda 0.29.1 135,301.90 ops/sec ±3.84% (88 runs) -50.64%
✔ rambda 9.1.0 160,691.05 ops/sec ±0.95% (96 runs) -41.37%
✔ lodash/fp 73,480.41 ops/sec ±2.14% (91 runs) -73.19%
✔ native 70,278.04 ops/sec ±2.06% (90 runs) -74.36%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./complex/deepFlat-uniq-groupBy.js:
• deepFlat → uniq → groupBy .....
✔ @mobily/ts-belt 4.0.0-rc.5 2,210,395.95 ops/sec ±6.97% (91 runs) fastest
✔ remeda 1.47.1 408,273.54 ops/sec ±2.73% (85 runs) -81.53%
✔ ramda 0.29.1 286,045.96 ops/sec ±2.52% (95 runs) -87.06%
✔ rambda 9.1.0 1,175,084.07 ops/sec ±2.40% (89 runs) -46.84%
✔ lodash/fp 534,755.68 ops/sec ±1.46% (93 runs) -75.81%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/sort.js:
• sort (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 11,470,113.81 ops/sec ±1.21% (91 runs) fastest
✔ remeda 1.47.1 1,601,326.29 ops/sec ±1.53% (97 runs) -86.04%
✔ ramda 0.29.1 2,989,288.18 ops/sec ±3.05% (91 runs) -73.94%
✔ rambda 9.1.0 3,123,883.84 ops/sec ±1.84% (93 runs) -72.77%
✔ native 3,084,947.27 ops/sec ±3.24% (82 runs) -73.10%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• sort (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 8,370,870.03 ops/sec ±2.27% (91 runs) fastest
✔ remeda 1.47.1 1,344,563.70 ops/sec ±1.40% (88 runs) -83.94%
✔ ramda 0.29.1 1,400,537.15 ops/sec ±3.16% (89 runs) -83.27%
✔ rambda 9.1.0 2,756,980.84 ops/sec ±1.04% (97 runs) -67.06%
✔ native 3,176,112.15 ops/sec ±0.92% (95 runs) -62.06%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/unzip.js:
• unzip (single function call)....
✔ @mobily/ts-belt 4.0.0-rc.5 41,533,802.48 ops/sec ±5.66% (98 runs) fastest
✔ ramda 0.29.1 6,741,243.20 ops/sec ±5.65% (90 runs) -83.77%
✔ rambda 9.1.0 7,114,196.65 ops/sec ±3.85% (89 runs) -82.87%
✔ lodash/fp 2,124,418.83 ops/sec ±4.33% (91 runs) -94.89%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• unzip (function call inside pipe
)....
✔ @mobily/ts-belt 4.0.0-rc.5 32,950,254.12 ops/sec ±1.18% (96 runs) fastest
✔ ramda 0.29.1 2,387,258.65 ops/sec ±1.99% (93 runs) -92.75%
✔ rambda 9.1.0 5,864,227.86 ops/sec ±2.85% (95 runs) -82.20%
✔ lodash/fp 2,039,548.61 ops/sec ±1.36% (99 runs) -93.81%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/flat.js:
• flat (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 21,410,699.07 ops/sec ±2.38% (96 runs) fastest
✔ remeda 1.47.1 2,840,918.50 ops/sec ±1.68% (94 runs) -86.73%
✔ ramda 0.29.1 2,193,000.51 ops/sec ±0.64% (90 runs) -89.76%
✔ lodash/fp 17,080,386.35 ops/sec ±0.42% (99 runs) -20.22%
✔ native 1,340,696.59 ops/sec ±0.94% (92 runs) -93.74%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• flat (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 19,534,262.07 ops/sec ±2.92% (98 runs) fastest
✔ remeda 1.47.1 2,083,297.34 ops/sec ±1.30% (98 runs) -89.34%
✔ ramda 0.29.1 1,307,606.66 ops/sec ±1.25% (95 runs) -93.31%
✔ lodash/fp 7,244,091.02 ops/sec ±2.96% (95 runs) -62.92%
✔ native 1,290,860.25 ops/sec ±1.90% (95 runs) -93.39%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/dropWhile.js:
• dropWhile (single function call)....
✔ @mobily/ts-belt 4.0.0-rc.5 40,266,471.53 ops/sec ±0.39% (97 runs) -15.36%
✔ ramda 0.29.1 30,064,084.48 ops/sec ±2.05% (94 runs) -36.80%
✔ rambda 9.1.0 47,573,297.08 ops/sec ±2.66% (91 runs) fastest
✔ lodash/fp 13,804,719.67 ops/sec ±1.39% (90 runs) -70.98%
➔ Fastest is rambda 9.1.0
• dropWhile (function call inside pipe
)....
✔ @mobily/ts-belt 4.0.0-rc.5 26,171,097.16 ops/sec ±1.83% (90 runs) fastest
✔ ramda 0.29.1 2,549,286.41 ops/sec ±0.76% (97 runs) -90.26%
✔ rambda 9.1.0 16,671,947.16 ops/sec ±2.18% (95 runs) -36.30%
✔ lodash/fp 1,066,263.90 ops/sec ±1.82% (98 runs) -95.93%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/takeWhile.js:
• takeWhile (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 53,179,497.19 ops/sec ±2.30% (96 runs) -24.26%
✔ remeda 1.47.1 3,003,161.40 ops/sec ±1.98% (93 runs) -95.72%
✔ ramda 0.29.1 33,406,800.41 ops/sec ±0.61% (94 runs) -52.42%
✔ rambda 9.1.0 70,211,519.61 ops/sec ±2.70% (94 runs) fastest
✔ lodash/fp 15,069,924.68 ops/sec ±1.57% (92 runs) -78.54%
➔ Fastest is rambda 9.1.0
• takeWhile (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 35,824,013.99 ops/sec ±1.34% (98 runs) fastest
✔ remeda 1.47.1 2,467,270.59 ops/sec ±1.25% (91 runs) -93.11%
✔ ramda 0.29.1 2,577,769.16 ops/sec ±0.24% (101 runs) -92.80%
✔ rambda 9.1.0 18,091,633.61 ops/sec ±1.55% (95 runs) -49.50%
✔ lodash/fp 785,232.75 ops/sec ±4.04% (90 runs) -97.81%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/difference.js:
• difference (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 11,252,435.92 ops/sec ±0.49% (93 runs) fastest
✔ remeda 1.47.1 2,293,258.02 ops/sec ±2.66% (92 runs) -79.62%
✔ ramda 0.29.1 5,979,769.76 ops/sec ±2.63% (85 runs) -46.86%
✔ rambda 9.1.0 3,313,031.56 ops/sec ±1.82% (93 runs) -70.56%
✔ lodash/fp 5,946,179.81 ops/sec ±2.00% (99 runs) -47.16%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• difference (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 9,765,660.81 ops/sec ±1.22% (97 runs) fastest
✔ remeda 1.47.1 1,865,344.82 ops/sec ±1.35% (97 runs) -80.90%
✔ ramda 0.29.1 1,988,739.83 ops/sec ±1.12% (89 runs) -79.64%
✔ rambda 9.1.0 2,839,216.82 ops/sec ±0.35% (101 runs) -70.93%
✔ lodash/fp 1,057,934.88 ops/sec ±1.40% (98 runs) -89.17%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/deepFlat.js:
• deepFlat (single function call)......
✔ @mobily/ts-belt 4.0.0-rc.5 17,556,228.00 ops/sec ±2.30% (92 runs) fastest
✔ remeda 1.47.1 1,352,557.71 ops/sec ±1.89% (95 runs) -92.30%
✔ ramda 0.29.1 824,947.15 ops/sec ±2.04% (92 runs) -95.30%
✔ rambda 9.1.0 16,105,943.40 ops/sec ±2.27% (93 runs) -8.26%
✔ lodash/fp 7,392,041.72 ops/sec ±1.02% (96 runs) -57.90%
✔ native 1,074,789.83 ops/sec ±2.18% (97 runs) -93.88%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• deepFlat (function call inside pipe
)......
✔ @mobily/ts-belt 4.0.0-rc.5 16,067,539.23 ops/sec ±1.10% (95 runs) fastest
✔ remeda 1.47.1 1,061,496.48 ops/sec ±1.28% (91 runs) -93.39%
✔ ramda 0.29.1 661,144.90 ops/sec ±0.28% (100 runs) -95.89%
✔ rambda 9.1.0 10,466,081.51 ops/sec ±0.57% (98 runs) -34.86%
✔ lodash/fp 4,874,019.55 ops/sec ±0.25% (91 runs) -69.67%
✔ native 985,416.52 ops/sec ±3.73% (91 runs) -93.87%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/reduce.js:
• reduce (single function call)......
✔ @mobily/ts-belt 4.0.0-rc.5 37,949,182.90 ops/sec ±3.66% (85 runs) fastest
✔ remeda 1.47.1 2,180,982.14 ops/sec ±4.84% (87 runs) -94.25%
✔ ramda 0.29.1 10,163,363.36 ops/sec ±6.91% (83 runs) -73.22%
✔ rambda 9.1.0 12,493,830.58 ops/sec ±2.38% (93 runs) -67.08%
✔ lodash/fp 10,599,462.54 ops/sec ±2.04% (91 runs) -72.07%
✔ native 16,903,757.06 ops/sec ±0.44% (99 runs) -55.46%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• reduce (function call inside pipe
)......
✔ @mobily/ts-belt 4.0.0-rc.5 25,840,719.20 ops/sec ±1.61% (95 runs) fastest
✔ remeda 1.47.1 2,021,280.30 ops/sec ±2.01% (96 runs) -92.18%
✔ ramda 0.29.1 2,023,564.85 ops/sec ±2.25% (97 runs) -92.17%
✔ rambda 9.1.0 6,233,053.01 ops/sec ±1.28% (97 runs) -75.88%
✔ lodash/fp 1,042,025.69 ops/sec ±0.76% (98 runs) -95.97%
✔ native 12,364,962.47 ops/sec ±5.20% (88 runs) -52.15%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/reject.js:
• reject (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 36,518,484.21 ops/sec ±6.17% (86 runs) -15.36%
✔ remeda 1.47.1 2,433,465.19 ops/sec ±1.74% (92 runs) -94.36%
✔ ramda 0.29.1 28,088,181.92 ops/sec ±2.24% (84 runs) -34.90%
✔ rambda 9.1.0 43,146,610.73 ops/sec ±3.11% (89 runs) fastest
✔ lodash/fp 7,549,494.72 ops/sec ±0.87% (95 runs) -82.50%
➔ Fastest is rambda 9.1.0
• reject (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 27,168,264.30 ops/sec ±0.91% (95 runs) fastest
✔ remeda 1.47.1 1,682,047.16 ops/sec ±3.96% (91 runs) -93.81%
✔ ramda 0.29.1 2,519,829.27 ops/sec ±2.07% (89 runs) -90.73%
✔ rambda 9.1.0 14,196,084.88 ops/sec ±4.30% (90 runs) -47.75%
✔ lodash/fp 612,784.87 ops/sec ±6.26% (79 runs) -97.74%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/intersection.js:
• intersection (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 11,899,777.45 ops/sec ±5.02% (86 runs) fastest
✔ remeda 1.47.1 2,224,693.18 ops/sec ±3.18% (88 runs) -81.30%
✔ ramda 0.29.1 2,525,384.03 ops/sec ±4.27% (83 runs) -78.78%
✔ rambda 9.1.0 6,461,992.11 ops/sec ±2.83% (90 runs) -45.70%
✔ lodash/fp 4,176,759.65 ops/sec ±1.11% (91 runs) -64.90%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• intersection (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 11,488,981.02 ops/sec ±1.66% (92 runs) fastest
✔ remeda 1.47.1 1,880,992.62 ops/sec ±1.28% (97 runs) -83.63%
✔ ramda 0.29.1 1,298,295.31 ops/sec ±4.34% (91 runs) -88.70%
✔ rambda 9.1.0 5,328,068.58 ops/sec ±2.05% (88 runs) -53.62%
✔ lodash/fp 842,233.77 ops/sec ±3.01% (89 runs) -92.67%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/intersperse.js:
• intersperse (single function call)...
✔ @mobily/ts-belt 4.0.0-rc.5 34,964,045.35 ops/sec ±0.81% (97 runs) -10.58%
✔ ramda 0.29.1 37,363,850.88 ops/sec ±3.80% (86 runs) -4.44%
✔ rambda 9.1.0 39,099,715.22 ops/sec ±3.03% (88 runs) fastest
➔ Fastest is rambda 9.1.0,ramda 0.29.1
• intersperse (function call inside pipe
)...
✔ @mobily/ts-belt 4.0.0-rc.5 23,472,319.16 ops/sec ±2.71% (90 runs) fastest
✔ ramda 0.29.1 2,676,769.28 ops/sec ±1.83% (97 runs) -88.60%
✔ rambda 9.1.0 15,670,326.59 ops/sec ±0.90% (98 runs) -33.24%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/flatMap.js:
• flatMap (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 27,554,329.56 ops/sec ±0.55% (98 runs) fastest
✔ remeda 1.47.1 1,485,713.36 ops/sec ±2.57% (95 runs) -94.61%
✔ ramda 0.29.1 1,649,040.10 ops/sec ±4.51% (93 runs) -94.02%
✔ rambda 9.1.0 5,052,297.95 ops/sec ±2.88% (86 runs) -81.66%
✔ lodash/fp 6,177,422.76 ops/sec ±1.00% (93 runs) -77.58%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• flatMap (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 20,713,097.77 ops/sec ±2.66% (88 runs) fastest
✔ remeda 1.47.1 1,900,882.60 ops/sec ±1.62% (99 runs) -90.82%
✔ ramda 0.29.1 1,066,266.28 ops/sec ±1.64% (94 runs) -94.85%
✔ rambda 9.1.0 4,180,671.18 ops/sec ±0.70% (96 runs) -79.82%
✔ lodash/fp 930,694.13 ops/sec ±2.03% (96 runs) -95.51%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/fromPairs.js:
• fromPairs (single function call)......
✔ @mobily/ts-belt 4.0.0-rc.5 18,659,187.95 ops/sec ±0.62% (96 runs) fastest
✔ remeda 1.47.1 2,823,709.46 ops/sec ±5.00% (87 runs) -84.87%
✔ ramda 0.29.1 8,323,693.30 ops/sec ±4.41% (87 runs) -55.39%
✔ rambda 9.1.0 15,586,753.07 ops/sec ±3.36% (91 runs) -16.47%
✔ lodash/fp 12,958,303.12 ops/sec ±6.01% (83 runs) -30.55%
✔ native 2,966,349.35 ops/sec ±3.20% (94 runs) -84.10%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• fromPairs (function call inside pipe
)......
✔ @mobily/ts-belt 4.0.0-rc.5 17,193,447.93 ops/sec ±1.57% (93 runs) fastest
✔ remeda 1.47.1 2,717,043.20 ops/sec ±3.23% (94 runs) -84.20%
✔ ramda 0.29.1 2,244,031.11 ops/sec ±4.13% (79 runs) -86.95%
✔ rambda 9.1.0 9,791,458.07 ops/sec ±3.69% (90 runs) -43.05%
✔ lodash/fp 2,949,288.79 ops/sec ±0.68% (98 runs) -82.85%
✔ native 2,858,947.62 ops/sec ±2.29% (95 runs) -83.37%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/union.js:
• union (single function call)....
✔ @mobily/ts-belt 4.0.0-rc.5 11,283,517.23 ops/sec ±0.97% (97 runs) fastest
✔ ramda 0.29.1 1,216,779.46 ops/sec ±1.75% (94 runs) -89.22%
✔ rambda 9.1.0 6,206,815.00 ops/sec ±1.14% (93 runs) -44.99%
✔ lodash/fp 5,004,353.69 ops/sec ±1.53% (95 runs) -55.65%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• union (function call inside pipe
)....
✔ @mobily/ts-belt 4.0.0-rc.5 9,789,952.44 ops/sec ±2.09% (95 runs) fastest
✔ ramda 0.29.1 811,249.87 ops/sec ±2.04% (89 runs) -91.71%
✔ rambda 9.1.0 5,235,353.04 ops/sec ±1.51% (92 runs) -46.52%
✔ lodash/fp 1,002,110.53 ops/sec ±1.31% (96 runs) -89.76%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/groupBy.js:
• groupBy (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 6,374,053.27 ops/sec ±8.37% (93 runs) -5.74%
✔ remeda 1.47.1 1,742,580.26 ops/sec ±1.87% (95 runs) -74.23%
✔ ramda 0.29.1 1,261,807.27 ops/sec ±2.09% (88 runs) -81.34%
✔ rambda 9.1.0 6,762,314.79 ops/sec ±2.13% (94 runs) fastest
✔ lodash/fp 3,775,651.94 ops/sec ±1.30% (98 runs) -44.17%
➔ Fastest is rambda 9.1.0
• groupBy (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 6,125,701.80 ops/sec ±1.45% (100 runs) fastest
✔ remeda 1.47.1 1,579,491.52 ops/sec ±1.22% (92 runs) -74.22%
✔ ramda 0.29.1 824,847.47 ops/sec ±2.15% (93 runs) -86.53%
✔ rambda 9.1.0 5,200,721.90 ops/sec ±2.41% (94 runs) -15.10%
✔ lodash/fp 850,836.72 ops/sec ±2.66% (96 runs) -86.11%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/zip.js:
• zip (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 24,095,239.83 ops/sec ±8.90% (95 runs) fastest
✔ remeda 1.47.1 2,704,409.33 ops/sec ±2.54% (94 runs) -88.78%
✔ ramda 0.29.1 19,613,493.67 ops/sec ±4.17% (79 runs) -18.60%
✔ rambda 9.1.0 21,822,510.72 ops/sec ±2.90% (92 runs) -9.43%
✔ lodash/fp 3,961,368.46 ops/sec ±1.53% (94 runs) -83.56%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• zip (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 18,594,967.64 ops/sec ±2.85% (89 runs) fastest
✔ remeda 1.47.1 2,119,069.95 ops/sec ±2.93% (95 runs) -88.60%
✔ ramda 0.29.1 2,498,876.93 ops/sec ±1.46% (93 runs) -86.56%
✔ rambda 9.1.0 10,650,610.51 ops/sec ±4.19% (84 runs) -42.72%
✔ lodash/fp 905,036.23 ops/sec ±2.66% (90 runs) -95.13%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/forEach.js:
• forEach (single function call)......
✔ @mobily/ts-belt 4.0.0-rc.5 105,758,467.56 ops/sec ±0.83% (98 runs) -30.34%
✔ remeda 1.47.1 2,641,546.88 ops/sec ±2.97% (90 runs) -98.26%
✔ ramda 0.29.1 149,483,815.15 ops/sec ±0.60% (96 runs) -1.53%
✔ rambda 9.1.0 151,811,886.23 ops/sec ±0.91% (90 runs) fastest
✔ lodash/fp 9,353,648.21 ops/sec ±0.61% (97 runs) -93.84%
✔ native 23,197,164.64 ops/sec ±3.07% (89 runs) -84.72%
➔ Fastest is rambda 9.1.0
• forEach (function call inside pipe
)......
✔ @mobily/ts-belt 4.0.0-rc.5 60,993,197.78 ops/sec ±2.33% (91 runs) fastest
✔ remeda 1.47.1 1,835,078.84 ops/sec ±1.64% (94 runs) -96.99%
✔ ramda 0.29.1 2,809,797.61 ops/sec ±1.08% (93 runs) -95.39%
✔ rambda 9.1.0 21,728,449.19 ops/sec ±3.39% (90 runs) -64.38%
✔ lodash/fp 987,979.67 ops/sec ±2.13% (95 runs) -98.38%
✔ native 16,945,352.06 ops/sec ±1.24% (94 runs) -72.22%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/uniq.js:
• uniq (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 11,523,981.84 ops/sec ±2.36% (93 runs) -54.38%
✔ remeda 1.47.1 2,087,028.26 ops/sec ±1.65% (97 runs) -91.74%
✔ ramda 0.29.1 1,118,777.77 ops/sec ±1.76% (87 runs) -95.57%
✔ rambda 9.1.0 2,340,914.97 ops/sec ±0.92% (98 runs) -90.73%
✔ lodash/fp 25,262,197.47 ops/sec ±1.31% (99 runs) fastest
➔ Fastest is lodash/fp
• uniq (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 11,750,238.28 ops/sec ±1.68% (93 runs) fastest
✔ remeda 1.47.1 1,790,751.77 ops/sec ±1.25% (98 runs) -84.76%
✔ ramda 0.29.1 829,938.01 ops/sec ±1.41% (98 runs) -92.94%
✔ rambda 9.1.0 1,980,804.70 ops/sec ±2.90% (90 runs) -83.14%
✔ lodash/fp 8,477,584.97 ops/sec ±2.76% (94 runs) -27.85%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/toPairs.js:
• toPairs (single function call)......
✔ @mobily/ts-belt 4.0.0-rc.5 41,967,239.12 ops/sec ±2.00% (96 runs) -12.90%
✔ remeda 1.47.1 3,416,704.86 ops/sec ±2.12% (97 runs) -92.91%
✔ ramda 0.29.1 12,111,823.58 ops/sec ±1.77% (98 runs) -74.86%
✔ rambda 9.1.0 47,849,505.45 ops/sec ±2.66% (94 runs) -0.70%
✔ lodash/fp 13,017,254.11 ops/sec ±1.66% (96 runs) -72.98%
✔ native 48,184,770.70 ops/sec ±1.08% (95 runs) fastest
➔ Fastest is native,rambda 9.1.0
• toPairs (function call inside pipe
)......
✔ @mobily/ts-belt 4.0.0-rc.5 35,482,823.18 ops/sec ±3.45% (92 runs) fastest
✔ remeda 1.47.1 3,164,783.62 ops/sec ±0.70% (94 runs) -91.08%
✔ ramda 0.29.1 2,730,241.28 ops/sec ±2.40% (93 runs) -92.31%
✔ rambda 9.1.0 18,614,575.59 ops/sec ±1.99% (95 runs) -47.54%
✔ lodash/fp 6,179,840.82 ops/sec ±1.55% (96 runs) -82.58%
✔ native 32,951,513.78 ops/sec ±3.39% (94 runs) -7.13%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/map.js:
• map (single function call)......
✔ @mobily/ts-belt 4.0.0-rc.5 70,371,137.80 ops/sec ±0.96% (98 runs) -19.49%
✔ remeda 1.47.1 2,790,094.84 ops/sec ±1.41% (96 runs) -96.81%
✔ ramda 0.29.1 53,572,704.29 ops/sec ±0.89% (93 runs) -38.71%
✔ rambda 9.1.0 87,407,387.09 ops/sec ±0.43% (94 runs) fastest
✔ lodash/fp 14,001,332.02 ops/sec ±2.25% (97 runs) -83.98%
✔ native 18,845,989.02 ops/sec ±0.63% (94 runs) -78.44%
➔ Fastest is rambda 9.1.0
• map (function call inside pipe
)......
✔ @mobily/ts-belt 4.0.0-rc.5 40,337,984.34 ops/sec ±3.19% (91 runs) fastest
✔ remeda 1.47.1 1,754,909.18 ops/sec ±3.06% (92 runs) -95.65%
✔ ramda 0.29.1 2,634,114.92 ops/sec ±2.38% (89 runs) -93.47%
✔ rambda 9.1.0 18,682,793.05 ops/sec ±0.93% (95 runs) -53.68%
✔ lodash/fp 774,544.88 ops/sec ±7.91% (85 runs) -98.08%
✔ native 14,236,929.72 ops/sec ±2.63% (91 runs) -64.71%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/filter.js:
• filter (single function call)......
✔ @mobily/ts-belt 4.0.0-rc.5 44,416,036.76 ops/sec ±0.84% (96 runs) -8.88%
✔ remeda 1.47.1 2,418,176.95 ops/sec ±1.52% (97 runs) -95.04%
✔ ramda 0.29.1 31,287,091.86 ops/sec ±1.94% (90 runs) -35.81%
✔ rambda 9.1.0 48,744,327.73 ops/sec ±2.97% (93 runs) fastest
✔ lodash/fp 7,906,730.36 ops/sec ±1.48% (93 runs) -83.78%
✔ native 16,674,528.24 ops/sec ±0.53% (97 runs) -65.79%
➔ Fastest is rambda 9.1.0
• filter (function call inside pipe
)......
✔ @mobily/ts-belt 4.0.0-rc.5 31,183,534.30 ops/sec ±2.10% (97 runs) fastest
✔ remeda 1.47.1 1,588,923.93 ops/sec ±4.05% (87 runs) -94.90%
✔ ramda 0.29.1 2,356,375.96 ops/sec ±5.14% (86 runs) -92.44%
✔ rambda 9.1.0 14,433,725.04 ops/sec ±3.82% (84 runs) -53.71%
✔ lodash/fp 729,749.07 ops/sec ±7.28% (73 runs) -97.66%
✔ native 11,898,567.29 ops/sec ±3.02% (89 runs) -61.84%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/find.js:
• find (single function call)......
✔ @mobily/ts-belt 4.0.0-rc.5 99,493,735.15 ops/sec ±3.83% (88 runs) -27.09%
✔ remeda 1.47.1 2,634,610.39 ops/sec ±2.90% (86 runs) -98.07%
✔ ramda 0.29.1 123,605,094.37 ops/sec ±7.16% (78 runs) -9.42%
✔ rambda 9.1.0 136,453,141.03 ops/sec ±3.34% (89 runs) fastest
✔ lodash/fp 8,413,142.48 ops/sec ±6.67% (82 runs) -93.83%
✔ native 32,286,657.35 ops/sec ±2.79% (94 runs) -76.34%
➔ Fastest is rambda 9.1.0
• find (function call inside pipe
)......
✔ @mobily/ts-belt 4.0.0-rc.5 59,417,019.17 ops/sec ±1.27% (93 runs) fastest
✔ remeda 1.47.1 1,914,290.23 ops/sec ±1.71% (93 runs) -96.78%
✔ ramda 0.29.1 2,900,425.42 ops/sec ±0.90% (93 runs) -95.12%
✔ rambda 9.1.0 21,737,956.78 ops/sec ±2.21% (93 runs) -63.41%
✔ lodash/fp 863,631.21 ops/sec ±3.41% (93 runs) -98.55%
✔ native 22,540,419.39 ops/sec ±1.23% (99 runs) -62.06%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• ./simple/splitEvery.js:
• splitEvery/chunk (single function call).....
✔ @mobily/ts-belt 4.0.0-rc.5 25,457,417.61 ops/sec ±0.60% (96 runs) fastest
✔ remeda 1.47.1 2,344,655.77 ops/sec ±6.14% (86 runs) -90.79%
✔ ramda 0.29.1 9,721,977.87 ops/sec ±4.04% (84 runs) -61.81%
✔ rambda 9.1.0 15,330,614.99 ops/sec ±4.38% (88 runs) -39.78%
✔ lodash/fp 10,695,127.31 ops/sec ±3.20% (88 runs) -57.99%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
• splitEvery/chunk (function call inside pipe
).....
✔ @mobily/ts-belt 4.0.0-rc.5 18,909,403.57 ops/sec ±2.40% (92 runs) fastest
✔ remeda 1.47.1 2,309,039.25 ops/sec ±4.21% (86 runs) -87.79%
✔ ramda 0.29.1 1,816,530.52 ops/sec ±5.22% (92 runs) -90.39%
✔ rambda 9.1.0 9,731,895.09 ops/sec ±1.59% (88 runs) -48.53%
✔ lodash/fp 1,021,855.46 ops/sec ±1.88% (93 runs) -94.60%
➔ Fastest is @mobily/ts-belt 4.0.0-rc.5
I only updated remeda, but you can see just updating it makes it narrowly win a few benchmarks.
Considering all package versions are from 2021, 3-3.5 years later I think we should be fairer in benchmarking with latest versions.