Skip to content

chore: add benchmark workflow #6

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

Merged
merged 57 commits into from
Apr 9, 2024
Merged

chore: add benchmark workflow #6

merged 57 commits into from
Apr 9, 2024

Conversation

gurgunday
Copy link
Owner

@gurgunday gurgunday commented Apr 3, 2024

WIP

Will close #7

@gurgunday gurgunday marked this pull request as draft April 3, 2024 09:22
@gurgunday gurgunday closed this Apr 4, 2024
@gurgunday gurgunday deleted the perf branch April 4, 2024 14:14
@gurgunday gurgunday restored the perf branch April 4, 2024 20:23
@gurgunday gurgunday reopened this Apr 4, 2024
@gurgunday gurgunday changed the title perf: refactor to avoid unnecessary string assignments chore: add benchmark workflow Apr 4, 2024
@danielweck
Copy link

hello :)
have you compared performance with htm?
https://github.com/developit/htm

20240409_071022.jpg

screenshot from:

https://twitter.com/gurgundayX/status/1775977621873959334

@gurgunday
Copy link
Owner Author

have you compared performance with htm?

Hi, I haven't yet, but I will now :)

Maybe we can add it to Kitajs' benchmarks and pull from there

@gurgunday
Copy link
Owner Author

Benchmark Results:

[

Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results:

[

Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results:

[{"Task Name":"Simple rendering","ops/sec":"15,951,871","Average Time (ns)":62.68856884011317,"Margin":"±0.24%","Samples":15951872},{"Task Name":"Escaping characters","ops/sec":"2,308,408","Average Time (ns)":433.1989734056973,"Margin":"±0.28%","Samples":2308409},{"Task Name":"Using variables","ops/sec":"5,284,711","Average Time (ns)":189.22507905788487,"Margin":"±0.22%","Samples":5284712},{"Task Name":"Handling null and undefined","ops/sec":"10,761,759","Average Time (ns)":92.9216052019719,"Margin":"±0.55%","Samples":10761760},{"Task Name":"Nested templates","ops/sec":"1,405,039","Average Time (ns)":711.7237459417852,"Margin":"±0.49%","Samples":1405040},{"Task Name":"Arrays and iteration","ops/sec":"617,291","Average Time (ns)":1619.980560249008,"Margin":"±0.46%","Samples":617292},{"Task Name":"Complex expressions","ops/sec":"1,680,235","Average Time (ns)":595.1546854136153,"Margin":"±0.49%","Samples":1680236},{"Task Name":"Large strings","ops/sec":"130,860","Average Time (ns)":7641.713061952758,"Margin":"±0.27%","Samples":130861},{"Task Name":"High iteration count","ops/sec":"8,615","Average Time (ns)":116065.63010676872,"Margin":"±0.67%","Samples":8616},{"Task Name":"Unescaped expressions","ops/sec":"12,635,655","Average Time (ns)":79.14112729849306,"Margin":"±0.83%","Samples":12635656},{"Task Name":"Script tags without execution","ops/sec":"1,592,323","Average Time (ns)":628.0132435354639,"Margin":"±0.23%","Samples":1592324},{"Task Name":"Escaping avoided with "!"","ops/sec":"12,713,972","Average Time (ns)":78.65362267144543,"Margin":"±0.31%","Samples":12713973}]

Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results:

Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results:

Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results:

[{"Task Name":"Simple rendering","ops/sec":"16,323,902","Average Time (ns)":61.25986291391032,"Margin":"±0.35%","Samples":16323903},{"Task Name":"Escaping characters","ops/sec":"2,364,439","Average Time (ns)":422.9332340845777,"Margin":"±0.27%","Samples":2364440},{"Task Name":"Using variables","ops/sec":"5,288,698","Average Time (ns)":189.08243690916507,"Margin":"±0.25%","Samples":5288699},{"Task Name":"Handling null and undefined","ops/sec":"10,780,234","Average Time (ns)":92.76235796349937,"Margin":"±0.59%","Samples":10780235},{"Task Name":"Nested templates","ops/sec":"1,389,041","Average Time (ns)":719.9211039025597,"Margin":"±0.41%","Samples":1389042},{"Task Name":"Arrays and iteration","ops/sec":"608,006","Average Time (ns)":1644.7196923748713,"Margin":"±1.37%","Samples":608007},{"Task Name":"Complex expressions","ops/sec":"1,610,434","Average Time (ns)":620.9505028145144,"Margin":"±1.31%","Samples":1610435},{"Task Name":"Large strings","ops/sec":"131,303","Average Time (ns)":7615.970541643188,"Margin":"±0.18%","Samples":131304},{"Task Name":"High iteration count","ops/sec":"8,594","Average Time (ns)":116353.68737638333,"Margin":"±0.50%","Samples":8595},{"Task Name":"Unescaped expressions","ops/sec":"11,725,263","Average Time (ns)":85.28593224030375,"Margin":"±11.11%","Samples":11725264},{"Task Name":"Script tags without execution","ops/sec":"1,569,127","Average Time (ns)":637.29686551996,"Margin":"±0.19%","Samples":1569128},{"Task Name":"Escaping avoided with "!"","ops/sec":"12,729,713","Average Time (ns)":78.55636324516878,"Margin":"±0.27%","Samples":12729714}]

Copy link

github-actions bot commented Apr 9, 2024

Benchmark results for commit: 19ff156

[{"Task Name":"Simple rendering","ops/sec":"16,394,626","Average Time (ns)":60.99559672807341,"Margin":"±0.35%","Samples":16394627},{"Task Name":"Escaping characters","ops/sec":"2,431,731","Average Time (ns)":411.229637969902,"Margin":"±0.37%","Samples":2431732},{"Task Name":"Using variables","ops/sec":"5,254,248","Average Time (ns)":190.32218952676348,"Margin":"±0.22%","Samples":5254249},{"Task Name":"Handling null and undefined","ops/sec":"10,829,829","Average Time (ns)":92.3375558990735,"Margin":"±0.35%","Samples":10829830},{"Task Name":"Nested templates","ops/sec":"1,411,825","Average Time (ns)":708.3029863531252,"Margin":"±0.75%","Samples":1411826},{"Task Name":"Arrays and iteration","ops/sec":"624,451","Average Time (ns)":1601.4045867446707,"Margin":"±0.46%","Samples":624452},{"Task Name":"Complex expressions","ops/sec":"1,604,546","Average Time (ns)":623.229169977679,"Margin":"±1.03%","Samples":1604547},{"Task Name":"Large strings","ops/sec":"130,161","Average Time (ns)":7682.773635930672,"Margin":"±0.10%","Samples":130162},{"Task Name":"High iteration count","ops/sec":"8,271","Average Time (ns)":120893.83196326283,"Margin":"±0.88%","Samples":8272},{"Task Name":"Unescaped expressions","ops/sec":"11,873,454","Average Time (ns)":84.22148751141859,"Margin":"±11.65%","Samples":11873455},{"Task Name":"Script tags without execution","ops/sec":"1,572,595","Average Time (ns)":635.8912435229953,"Margin":"±0.24%","Samples":1572596},{"Task Name":"Escaping avoided with "!"","ops/sec":"12,704,712","Average Time (ns)":78.71095088887202,"Margin":"±0.33%","Samples":12704713}]

Copy link

github-actions bot commented Apr 9, 2024

Benchmark results for commit: 8890736

[
  {
    "Task Name": "Simple rendering",
    "ops/sec": "16,418,143",
    "Average Time (ns)": 60.90822568010933,
    "Margin": "±0.30%",
    "Samples": 16418144
  },
  {
    "Task Name": "Escaping characters",
    "ops/sec": "2,316,858",
    "Average Time (ns)": 431.6190130698478,
    "Margin": "±0.75%",
    "Samples": 2316859
  },
  {
    "Task Name": "Using variables",
    "ops/sec": "5,229,491",
    "Average Time (ns)": 191.22317731833516,
    "Margin": "±0.60%",
    "Samples": 5229492
  },
  {
    "Task Name": "Handling null and undefined",
    "ops/sec": "10,633,682",
    "Average Time (ns)": 94.04080053900935,
    "Margin": "±0.95%",
    "Samples": 10633683
  },
  {
    "Task Name": "Nested templates",
    "ops/sec": "1,356,062",
    "Average Time (ns)": 737.429125338827,
    "Margin": "±1.20%",
    "Samples": 1356063
  },
  {
    "Task Name": "Arrays and iteration",
    "ops/sec": "614,160",
    "Average Time (ns)": 1628.2387826608888,
    "Margin": "±1.32%",
    "Samples": 614161
  },
  {
    "Task Name": "Complex expressions",
    "ops/sec": "1,611,722",
    "Average Time (ns)": 620.45407554583,
    "Margin": "±1.28%",
    "Samples": 1611723
  },
  {
    "Task Name": "Large strings",
    "ops/sec": "128,561",
    "Average Time (ns)": 7778.377251798817,
    "Margin": "±0.10%",
    "Samples": 128564
  },
  {
    "Task Name": "High iteration count",
    "ops/sec": "8,388",
    "Average Time (ns)": 119211.47061629716,
    "Margin": "±1.03%",
    "Samples": 8389
  },
  {
    "Task Name": "Unescaped expressions",
    "ops/sec": "11,730,247",
    "Average Time (ns)": 85.24969582928824,
    "Margin": "±11.01%",
    "Samples": 11730248
  },
  {
    "Task Name": "Script tags without execution",
    "ops/sec": "1,573,134",
    "Average Time (ns)": 635.6733751410402,
    "Margin": "±0.56%",
    "Samples": 1573135
  },
  {
    "Task Name": "Escaping avoided with !",
    "ops/sec": "12,661,257",
    "Average Time (ns)": 78.98109658591802,
    "Margin": "±0.56%",
    "Samples": 12661258
  }
]

Copy link

github-actions bot commented Apr 9, 2024

Benchmark results for commit: 16ea58b

[
  {
    "Task Name": "Simple rendering",
    "ops/sec": "16,379,194",
    "Average Time (ns)": 61.053062253706905,
    "Margin": "±0.33%",
    "Samples": 16379195
  },
  {
    "Task Name": "Escaping characters",
    "ops/sec": "2,316,389",
    "Average Time (ns)": 431.706288664754,
    "Margin": "±0.63%",
    "Samples": 2316390
  },
  {
    "Task Name": "Using variables",
    "ops/sec": "5,397,719",
    "Average Time (ns)": 185.26343511761883,
    "Margin": "±0.40%",
    "Samples": 5397720
  },
  {
    "Task Name": "Handling null and undefined",
    "ops/sec": "10,788,799",
    "Average Time (ns)": 92.68871579773618,
    "Margin": "±0.60%",
    "Samples": 10788800
  },
  {
    "Task Name": "Nested templates",
    "ops/sec": "1,386,496",
    "Average Time (ns)": 721.2422882996216,
    "Margin": "±0.66%",
    "Samples": 1386497
  },
  {
    "Task Name": "Arrays and iteration",
    "ops/sec": "598,452",
    "Average Time (ns)": 1670.9762437461452,
    "Margin": "±0.91%",
    "Samples": 598453
  },
  {
    "Task Name": "Complex expressions",
    "ops/sec": "1,599,465",
    "Average Time (ns)": 625.2090391417541,
    "Margin": "±0.99%",
    "Samples": 1599466
  },
  {
    "Task Name": "Large strings",
    "ops/sec": "130,833",
    "Average Time (ns)": 7643.288816370579,
    "Margin": "±0.05%",
    "Samples": 130834
  },
  {
    "Task Name": "High iteration count",
    "ops/sec": "7,454",
    "Average Time (ns)": 134140.71173706264,
    "Margin": "±1.13%",
    "Samples": 7455
  },
  {
    "Task Name": "Unescaped expressions",
    "ops/sec": "12,185,167",
    "Average Time (ns)": 82.066985206584,
    "Margin": "±0.94%",
    "Samples": 12185168
  },
  {
    "Task Name": "Script tags without execution",
    "ops/sec": "1,554,517",
    "Average Time (ns)": 643.2863858766576,
    "Margin": "±0.39%",
    "Samples": 1554518
  },
  {
    "Task Name": "Escaping avoided with !",
    "ops/sec": "12,440,627",
    "Average Time (ns)": 80.38179736578266,
    "Margin": "±0.38%",
    "Samples": 12440628
  }
]

@gurgunday gurgunday marked this pull request as ready for review April 9, 2024 14:08
Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results Comparison:

PR Branch:

[
{
  "Task Name": "Simple rendering",
  "ops/sec": "16,489,051",
  "Average Time (ns)": 60.646300648449255,
  "Margin": "±0.22%",
  "Samples": 16489052
},
{
  "Task Name": "Escaping characters",
  "ops/sec": "2,359,824",
  "Average Time (ns)": 423.76035595849413,
  "Margin": "±0.28%",
  "Samples": 2359825
},
{
  "Task Name": "Using variables",
  "ops/sec": "5,518,760",
  "Average Time (ns)": 181.200114482107,
  "Margin": "±0.23%",
  "Samples": 5518761
},
{
  "Task Name": "Handling null and undefined",
  "ops/sec": "10,799,960",
  "Average Time (ns)": 92.5929298265891,
  "Margin": "±0.33%",
  "Samples": 10799961
},
{
  "Task Name": "Nested templates",
  "ops/sec": "1,379,980",
  "Average Time (ns)": 724.6481538508364,
  "Margin": "±0.43%",
  "Samples": 1379981
},
{
  "Task Name": "Arrays and iteration",
  "ops/sec": "615,117",
  "Average Time (ns)": 1625.7053589766272,
  "Margin": "±0.42%",
  "Samples": 615118
},
{
  "Task Name": "Complex expressions",
  "ops/sec": "1,610,882",
  "Average Time (ns)": 620.7778491661593,
  "Margin": "±0.47%",
  "Samples": 1610883
},
{
  "Task Name": "Large strings",
  "ops/sec": "131,033",
  "Average Time (ns)": 7631.64790054062,
  "Margin": "±0.05%",
  "Samples": 131034
},
{
  "Task Name": "High iteration count",
  "ops/sec": "8,470",
  "Average Time (ns)": 118061.16963760038,
  "Margin": "±1.14%",
  "Samples": 8471
},
{
  "Task Name": "Unescaped expressions",
  "ops/sec": "12,424,711",
  "Average Time (ns)": 80.48476520052473,
  "Margin": "±0.92%",
  "Samples": 12424712
},
{
  "Task Name": "Script tags without execution",
  "ops/sec": "1,553,738",
  "Average Time (ns)": 643.6089806592129,
  "Margin": "±0.22%",
  "Samples": 1553739
},
{
  "Task Name": "Escaping avoided with !",
  "ops/sec": "12,764,031",
  "Average Time (ns)": 78.34515198611194,
  "Margin": "±0.23%",
  "Samples": 12764032
}
]

Main Branch:

[
{
  "Task Name": "Simple rendering",
  "ops/sec": "16,472,837",
  "Average Time (ns)": 60.70599613738078,
  "Margin": "±0.39%",
  "Samples": 16472838
},
{
  "Task Name": "Escaping characters",
  "ops/sec": "2,365,903",
  "Average Time (ns)": 422.6715838851833,
  "Margin": "±0.26%",
  "Samples": 2365904
},
{
  "Task Name": "Using variables",
  "ops/sec": "5,140,062",
  "Average Time (ns)": 194.5501642684825,
  "Margin": "±0.25%",
  "Samples": 5140063
},
{
  "Task Name": "Handling null and undefined",
  "ops/sec": "10,208,536",
  "Average Time (ns)": 97.95723471421842,
  "Margin": "±0.31%",
  "Samples": 10208537
},
{
  "Task Name": "Nested templates",
  "ops/sec": "1,397,481",
  "Average Time (ns)": 715.5728968245422,
  "Margin": "±0.43%",
  "Samples": 1397482
},
{
  "Task Name": "Arrays and iteration",
  "ops/sec": "626,018",
  "Average Time (ns)": 1597.3969655820135,
  "Margin": "±0.42%",
  "Samples": 626019
},
{
  "Task Name": "Complex expressions",
  "ops/sec": "1,618,399",
  "Average Time (ns)": 617.8944284477575,
  "Margin": "±0.39%",
  "Samples": 1618400
},
{
  "Task Name": "Large strings",
  "ops/sec": "130,846",
  "Average Time (ns)": 7642.555878237821,
  "Margin": "±0.13%",
  "Samples": 130847
},
{
  "Task Name": "High iteration count",
  "ops/sec": "8,580",
  "Average Time (ns)": 116545.27852233304,
  "Margin": "±0.88%",
  "Samples": 8581
},
{
  "Task Name": "Unescaped expressions",
  "ops/sec": "11,532,877",
  "Average Time (ns)": 86.70862650238861,
  "Margin": "±12.64%",
  "Samples": 11532878
},
{
  "Task Name": "Script tags without execution",
  "ops/sec": "1,561,530",
  "Average Time (ns)": 640.3974560865685,
  "Margin": "±0.21%",
  "Samples": 1561531
},
{
  "Task Name": "Escaping avoided with !",
  "ops/sec": "12,488,422",
  "Average Time (ns)": 80.07416701058355,
  "Margin": "±0.24%",
  "Samples": 12488423
}
]

Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results Comparison (d580bd3):

PR Branch:

[
{
  "Task Name": "Simple rendering",
  "ops/sec": "16,167,353",
  "Average Time (ns)": 61.853041010901954,
  "Margin": "±0.36%",
  "Samples": 16167354
},
{
  "Task Name": "Escaping characters",
  "ops/sec": "2,326,214",
  "Average Time (ns)": 429.88297604420706,
  "Margin": "±0.77%",
  "Samples": 2326216
},
{
  "Task Name": "Using variables",
  "ops/sec": "5,427,737",
  "Average Time (ns)": 184.23884203720453,
  "Margin": "±0.49%",
  "Samples": 5427738
},
{
  "Task Name": "Handling null and undefined",
  "ops/sec": "10,547,072",
  "Average Time (ns)": 94.8130390300174,
  "Margin": "±0.85%",
  "Samples": 10547073
},
{
  "Task Name": "Nested templates",
  "ops/sec": "1,314,730",
  "Average Time (ns)": 760.6121115269744,
  "Margin": "±1.31%",
  "Samples": 1314731
},
{
  "Task Name": "Arrays and iteration",
  "ops/sec": "595,775",
  "Average Time (ns)": 1678.4857412857582,
  "Margin": "±1.58%",
  "Samples": 595776
},
{
  "Task Name": "Complex expressions",
  "ops/sec": "1,576,405",
  "Average Time (ns)": 634.3544994118017,
  "Margin": "±1.34%",
  "Samples": 1576406
},
{
  "Task Name": "Large strings",
  "ops/sec": "129,703",
  "Average Time (ns)": 7709.866102819427,
  "Margin": "±0.08%",
  "Samples": 129704
},
{
  "Task Name": "High iteration count",
  "ops/sec": "8,520",
  "Average Time (ns)": 117366.21358992835,
  "Margin": "±1.05%",
  "Samples": 8521
},
{
  "Task Name": "Unescaped expressions",
  "ops/sec": "12,371,463",
  "Average Time (ns)": 80.83118287387481,
  "Margin": "±1.21%",
  "Samples": 12371464
},
{
  "Task Name": "Script tags without execution",
  "ops/sec": "1,552,313",
  "Average Time (ns)": 644.1997463137518,
  "Margin": "±0.64%",
  "Samples": 1552314
},
{
  "Task Name": "Escaping avoided with !",
  "ops/sec": "12,644,874",
  "Average Time (ns)": 79.08342336324569,
  "Margin": "±0.70%",
  "Samples": 12644875
}
]

Main Branch:

[
{
  "Task Name": "Simple rendering",
  "ops/sec": "16,329,830",
  "Average Time (ns)": 61.237623340985,
  "Margin": "±0.28%",
  "Samples": 16329831
},
{
  "Task Name": "Escaping characters",
  "ops/sec": "2,369,941",
  "Average Time (ns)": 421.95129458831974,
  "Margin": "±0.73%",
  "Samples": 2369942
},
{
  "Task Name": "Using variables",
  "ops/sec": "5,402,712",
  "Average Time (ns)": 185.09219442175885,
  "Margin": "±0.51%",
  "Samples": 5402713
},
{
  "Task Name": "Handling null and undefined",
  "ops/sec": "10,747,793",
  "Average Time (ns)": 93.04235436580828,
  "Margin": "±0.79%",
  "Samples": 10747794
},
{
  "Task Name": "Nested templates",
  "ops/sec": "1,375,646",
  "Average Time (ns)": 726.9308936078675,
  "Margin": "±1.18%",
  "Samples": 1375647
},
{
  "Task Name": "Arrays and iteration",
  "ops/sec": "602,086",
  "Average Time (ns)": 1660.8902766555448,
  "Margin": "±0.96%",
  "Samples": 602087
},
{
  "Task Name": "Complex expressions",
  "ops/sec": "1,610,324",
  "Average Time (ns)": 620.9928946009337,
  "Margin": "±0.83%",
  "Samples": 1610325
},
{
  "Task Name": "Large strings",
  "ops/sec": "130,878",
  "Average Time (ns)": 7640.686618937623,
  "Margin": "±0.27%",
  "Samples": 130879
},
{
  "Task Name": "High iteration count",
  "ops/sec": "8,500",
  "Average Time (ns)": 117646.06103012164,
  "Margin": "±1.25%",
  "Samples": 8504
},
{
  "Task Name": "Unescaped expressions",
  "ops/sec": "11,864,177",
  "Average Time (ns)": 84.28734321024552,
  "Margin": "±1.15%",
  "Samples": 11864178
},
{
  "Task Name": "Script tags without execution",
  "ops/sec": "1,562,461",
  "Average Time (ns)": 640.0158807063768,
  "Margin": "±0.40%",
  "Samples": 1562462
},
{
  "Task Name": "Escaping avoided with !",
  "ops/sec": "11,980,798",
  "Average Time (ns)": 83.46689181596783,
  "Margin": "±0.28%",
  "Samples": 11980799
}
]

Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results Comparison (0c10256):

PR Branch:

[
{
  "Task Name": "Simple rendering",
  "ops/sec": "16,361,283",
  "Average Time (ns)": 61.11990006407404,
  "Margin": "±0.25%",
  "Samples": 16361284
},
{
  "Task Name": "Escaping characters",
  "ops/sec": "2,327,999",
  "Average Time (ns)": 429.55341108273245,
  "Margin": "±0.87%",
  "Samples": 2328000
},
{
  "Task Name": "Using variables",
  "ops/sec": "5,416,190",
  "Average Time (ns)": 184.63160863432412,
  "Margin": "±0.56%",
  "Samples": 5416191
},
{
  "Task Name": "Handling null and undefined",
  "ops/sec": "10,598,928",
  "Average Time (ns)": 94.34915881225642,
  "Margin": "±0.93%",
  "Samples": 10606314
},
{
  "Task Name": "Nested templates",
  "ops/sec": "1,361,067",
  "Average Time (ns)": 734.7175784012592,
  "Margin": "±1.39%",
  "Samples": 1361068
},
{
  "Task Name": "Arrays and iteration",
  "ops/sec": "587,800",
  "Average Time (ns)": 1701.257973359888,
  "Margin": "±1.56%",
  "Samples": 587801
},
{
  "Task Name": "Complex expressions",
  "ops/sec": "1,582,364",
  "Average Time (ns)": 631.9657999272794,
  "Margin": "±1.39%",
  "Samples": 1582365
},
{
  "Task Name": "Large strings",
  "ops/sec": "130,856",
  "Average Time (ns)": 7641.987643000474,
  "Margin": "±0.27%",
  "Samples": 130857
},
{
  "Task Name": "High iteration count",
  "ops/sec": "8,490",
  "Average Time (ns)": 117775.67542105462,
  "Margin": "±1.11%",
  "Samples": 8491
},
{
  "Task Name": "Unescaped expressions",
  "ops/sec": "11,543,153",
  "Average Time (ns)": 86.63143963985709,
  "Margin": "±12.15%",
  "Samples": 11543154
},
{
  "Task Name": "Script tags without execution",
  "ops/sec": "1,563,409",
  "Average Time (ns)": 639.6277054642624,
  "Margin": "±0.62%",
  "Samples": 1563410
},
{
  "Task Name": "Escaping avoided with !",
  "ops/sec": "12,512,604",
  "Average Time (ns)": 79.91941070643824,
  "Margin": "±0.63%",
  "Samples": 12512605
}
]

Main Branch:

[
{
  "Task Name": "Simple rendering",
  "ops/sec": "16,260,093",
  "Average Time (ns)": 61.5002603306086,
  "Margin": "±0.29%",
  "Samples": 16260094
},
{
  "Task Name": "Escaping characters",
  "ops/sec": "2,323,275",
  "Average Time (ns)": 430.4268489845318,
  "Margin": "±0.85%",
  "Samples": 2323276
},
{
  "Task Name": "Using variables",
  "ops/sec": "5,384,319",
  "Average Time (ns)": 185.724476999819,
  "Margin": "±0.49%",
  "Samples": 5384320
},
{
  "Task Name": "Handling null and undefined",
  "ops/sec": "10,471,209",
  "Average Time (ns)": 95.49995205906983,
  "Margin": "±1.16%",
  "Samples": 10471210
},
{
  "Task Name": "Nested templates",
  "ops/sec": "1,373,547",
  "Average Time (ns)": 728.041807784533,
  "Margin": "±1.42%",
  "Samples": 1373548
},
{
  "Task Name": "Arrays and iteration",
  "ops/sec": "593,684",
  "Average Time (ns)": 1684.395119991687,
  "Margin": "±1.62%",
  "Samples": 593769
},
{
  "Task Name": "Complex expressions",
  "ops/sec": "1,585,685",
  "Average Time (ns)": 630.6420028939613,
  "Margin": "±1.38%",
  "Samples": 1585686
},
{
  "Task Name": "Large strings",
  "ops/sec": "130,890",
  "Average Time (ns)": 7639.976201571769,
  "Margin": "±0.29%",
  "Samples": 130891
},
{
  "Task Name": "High iteration count",
  "ops/sec": "7,335",
  "Average Time (ns)": 136319.5854689282,
  "Margin": "±1.04%",
  "Samples": 7336
},
{
  "Task Name": "Unescaped expressions",
  "ops/sec": "11,630,109",
  "Average Time (ns)": 85.98371494347346,
  "Margin": "±12.49%",
  "Samples": 11630110
},
{
  "Task Name": "Script tags without execution",
  "ops/sec": "1,561,007",
  "Average Time (ns)": 640.6117854610802,
  "Margin": "±0.63%",
  "Samples": 1561008
},
{
  "Task Name": "Escaping avoided with !",
  "ops/sec": "12,536,761",
  "Average Time (ns)": 79.76541374833036,
  "Margin": "±0.67%",
  "Samples": 12536762
}
]

Copy link

github-actions bot commented Apr 9, 2024

Benchmark Results Comparison (3427aba):

PR Branch:

[
{
  "Task Name": "Simple rendering",
  "ops/sec": "16,501,746",
  "Average Time (ns)": 60.59964499518159,
  "Margin": "±0.20%",
  "Samples": 16501747
},
{
  "Task Name": "Escaping characters",
  "ops/sec": "2,349,095",
  "Average Time (ns)": 425.69583405655123,
  "Margin": "±0.63%",
  "Samples": 2349096
},
{
  "Task Name": "Using variables",
  "ops/sec": "5,403,491",
  "Average Time (ns)": 185.06551837241014,
  "Margin": "±0.36%",
  "Samples": 5403492
},
{
  "Task Name": "Handling null and undefined",
  "ops/sec": "10,753,206",
  "Average Time (ns)": 92.99552021985339,
  "Margin": "±0.73%",
  "Samples": 10753207
},
{
  "Task Name": "Nested templates",
  "ops/sec": "1,384,414",
  "Average Time (ns)": 722.327031994739,
  "Margin": "±1.05%",
  "Samples": 1384415
},
{
  "Task Name": "Arrays and iteration",
  "ops/sec": "590,213",
  "Average Time (ns)": 1694.3029185416526,
  "Margin": "±1.30%",
  "Samples": 590568
},
{
  "Task Name": "Complex expressions",
  "ops/sec": "1,597,645",
  "Average Time (ns)": 625.9208948668031,
  "Margin": "±1.21%",
  "Samples": 1597646
},
{
  "Task Name": "Large strings",
  "ops/sec": "130,787",
  "Average Time (ns)": 7645.997209220855,
  "Margin": "±0.28%",
  "Samples": 130788
},
{
  "Task Name": "High iteration count",
  "ops/sec": "7,484",
  "Average Time (ns)": 133604.09031395486,
  "Margin": "±0.92%",
  "Samples": 7485
},
{
  "Task Name": "Unescaped expressions",
  "ops/sec": "11,709,937",
  "Average Time (ns)": 85.39755342889113,
  "Margin": "±12.02%",
  "Samples": 11709938
},
{
  "Task Name": "Script tags without execution",
  "ops/sec": "1,584,428",
  "Average Time (ns)": 631.1423781064295,
  "Margin": "±0.37%",
  "Samples": 1584429
},
{
  "Task Name": "Escaping avoided with !",
  "ops/sec": "12,624,086",
  "Average Time (ns)": 79.21365513394447,
  "Margin": "±0.44%",
  "Samples": 12624087
}
]

Main Branch:

[
{
  "Task Name": "Simple rendering",
  "ops/sec": "16,477,639",
  "Average Time (ns)": 60.688305121370625,
  "Margin": "±0.22%",
  "Samples": 16477640
},
{
  "Task Name": "Escaping characters",
  "ops/sec": "2,381,759",
  "Average Time (ns)": 419.85771068517045,
  "Margin": "±0.55%",
  "Samples": 2381760
},
{
  "Task Name": "Using variables",
  "ops/sec": "5,307,321",
  "Average Time (ns)": 188.41896289731378,
  "Margin": "±0.48%",
  "Samples": 5307322
},
{
  "Task Name": "Handling null and undefined",
  "ops/sec": "10,567,945",
  "Average Time (ns)": 94.62577373128266,
  "Margin": "±0.81%",
  "Samples": 10567946
},
{
  "Task Name": "Nested templates",
  "ops/sec": "1,387,344",
  "Average Time (ns)": 720.8013089741481,
  "Margin": "±0.71%",
  "Samples": 1387345
},
{
  "Task Name": "Arrays and iteration",
  "ops/sec": "605,544",
  "Average Time (ns)": 1651.4074627010932,
  "Margin": "±1.07%",
  "Samples": 605545
},
{
  "Task Name": "Complex expressions",
  "ops/sec": "1,602,217",
  "Average Time (ns)": 624.1350184570296,
  "Margin": "±1.05%",
  "Samples": 1602218
},
{
  "Task Name": "Large strings",
  "ops/sec": "131,147",
  "Average Time (ns)": 7625.021959929429,
  "Margin": "±0.04%",
  "Samples": 131148
},
{
  "Task Name": "High iteration count",
  "ops/sec": "8,428",
  "Average Time (ns)": 118641.64788233116,
  "Margin": "±0.95%",
  "Samples": 8429
},
{
  "Task Name": "Unescaped expressions",
  "ops/sec": "11,696,785",
  "Average Time (ns)": 85.49357686828692,
  "Margin": "±10.92%",
  "Samples": 11696786
},
{
  "Task Name": "Script tags without execution",
  "ops/sec": "1,569,061",
  "Average Time (ns)": 637.3238081097833,
  "Margin": "±0.39%",
  "Samples": 1569062
},
{
  "Task Name": "Escaping avoided with !",
  "ops/sec": "12,631,363",
  "Average Time (ns)": 79.16801764257625,
  "Margin": "±0.34%",
  "Samples": 12631364
}
]

@gurgunday gurgunday merged commit 8976727 into main Apr 9, 2024
@gurgunday gurgunday deleted the perf branch April 9, 2024 14:48
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 this pull request may close these issues.

Create or use an existing benchmark workflow
2 participants