Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update benchmarks to latest package versions #107

Open
drewbitt opened this issue Feb 18, 2024 · 4 comments · May be fixed by #112
Open

Update benchmarks to latest package versions #107

drewbitt opened this issue Feb 18, 2024 · 4 comments · May be fixed by #112

Comments

@drewbitt
Copy link

drewbitt commented Feb 18, 2024

I only updated remeda, but you can see just updating it makes it narrowly win a few benchmarks.

Node.js v18.19.0
• ./simple/fromPairs.js:

  • fromPairs (single function call)......

    ✔  @mobily/ts-belt  18,958,986.03  ops/sec  ±0.54%  (95 runs)   -5.48%
    ✔  remeda           20,058,027.83  ops/sec  ±1.00%  (96 runs)  fastest
    ✔  ramda             9,246,913.70  ops/sec  ±0.78%  (91 runs)  -53.90%
    ✔  rambda           16,097,820.06  ops/sec  ±0.78%  (92 runs)  -19.74%
    ✔  lodash/fp        14,481,211.07  ops/sec  ±0.54%  (97 runs)  -27.80%
    ✔  native            3,107,481.86  ops/sec  ±0.42%  (98 runs)  -84.51%
    
     • toPairs (single function call)......

    ✔  @mobily/ts-belt  45,096,919.34  ops/sec  ±0.39%  (97 runs)  -11.13%
    ✔  remeda           50,747,250.13  ops/sec  ±0.30%  (99 runs)  fastest
    ✔  ramda            12,225,290.06  ops/sec  ±2.23%  (97 runs)  -75.91%
    ✔  rambda           43,339,769.15  ops/sec  ±2.14%  (92 runs)  -14.60%
    ✔  lodash/fp        13,001,229.55  ops/sec  ±2.28%  (92 runs)  -74.38%
    ✔  native           50,285,859.52  ops/sec  ±0.49%  (94 runs)   -0.91%

    ➔ Fastest is remeda

Considering all package versions are from 2021, 3-3.5 years later I think we should be fairer in benchmarking with latest versions.

@JUSTIVE
Copy link
Sponsor

JUSTIVE commented Mar 11, 2024

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

@JUSTIVE JUSTIVE linked a pull request Mar 11, 2024 that will close this issue
@drewbitt
Copy link
Author

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

@JUSTIVE
Copy link
Sponsor

JUSTIVE commented Mar 12, 2024

maybe the varied result caused by node version. I'll match to yours and check again.

@JUSTIVE
Copy link
Sponsor

JUSTIVE commented Mar 12, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants