Skip to content

Add optional warmup test suite - #124

Merged
camillobruni merged 14 commits into
WebKit:mainfrom
camillobruni:2023-03-29_add_dummy_workload
May 16, 2023
Merged

Add optional warmup test suite#124
camillobruni merged 14 commits into
WebKit:mainfrom
camillobruni:2023-03-29_add_dummy_workload

Conversation

@camillobruni

@camillobruni camillobruni commented Mar 29, 2023

Copy link
Copy Markdown
Contributor

We've noticed that we get lazy compilation events for test-runner methods.
By doing running a warmup suite first, we can avoid this addition noise during measurements.

  • Add Warmup suite
  • Add better performance.measure annotation for all suites

@rniwa

rniwa commented Mar 29, 2023

Copy link
Copy Markdown
Member

I don't think we want to do this. We want to measure junks caused by compilation of test harness code since it's a real cost.

@bgrins

bgrins commented Apr 5, 2023

Copy link
Copy Markdown
Contributor

I don't think we want to do this. We want to measure junks caused by compilation of test harness code since it's a real cost.

I don't know - it seems like a somewhat random cost to include in the measurements (both because it only applies on the first tests using these functions, and because "benchmark runner" isn't a particularly representative workload that we'd include on its own merits).

If this effectively reduces noise in measurements I think we should consider it. @camillobruni how does this affect the scores and the deviation across runs?

@camillobruni

camillobruni commented Apr 11, 2023

Copy link
Copy Markdown
Contributor Author

Ro exaggerate the effects on warmup, I ran with iterationCount=3 averaged over 10 runs:

Without warmup:

browser                               Google Chrome Dev  Safari
version                               114.0.5696.0       16.4
-------------------------------------------------------------------
Editor-CodeMirror/total               15.58 ± 3.7%       21.7 ± 7.1%
Editor-TipTap/total                   11.53 ± 3.7%       156 ± 40%
React-Stockcharts-SVG/total           111.7 ± 4.3%       148.0 ± 6.0%
React-Stockcharts/total               86.8 ± 4.7%        121.8 ± 4.6%
TodoMVC-Angular/total                 21.9 ± 5.4%        27.1 ± 4.6%
TodoMVC-Backbone/total                25.07 ± 2.6%       32.8 ± 5.1%
TodoMVC-JavaScript-ES5/total          34.16 ± 2.5%       30.2 ± 3.7%
TodoMVC-JavaScript-ES6-Webpack/total  39.2 ± 3.5%        35.8 ± 3.8%
TodoMVC-JavaScript-ES6/total          43.0 ± 2.6%        39.6 ± 3.2%
TodoMVC-Preact/total                  9.13 ± 3.0%        12.08 ± 5.4%
TodoMVC-React-Redux/total             37.8 ± 2.7%        44.0 ± 4.9%
TodoMVC-React/total                   31.89 ± 3.1%       38.5 ± 4.3%
TodoMVC-Vue/total                     14.98 ± 4.3%       19.0 ± 5.6%
TodoMVC-jQuery/total                  87.2 ± 2.7%        85.0 ± 4.0%
-------------------------------------------------------------------
Score                                 644 ± 2.7%         469 ± 4.6%

With warmup

browser                               Google Chrome Dev  Safari
version                               114.0.5696.0       16.4
-------------------------------------------------------------------
Editor-CodeMirror/total               15.65 ± 1.7%       23.0 ± 5.1%
Editor-TipTap/total                   11.40 ± 2.1%       195 ± 11%
React-Stockcharts-SVG/total           117.40 ± 0.78%     155.1 ± 2.3%
React-Stockcharts/total               89.8 ± 2.2%        126.0 ± 0.81%
TodoMVC-Angular/total                 22.58 ± 1.1%       27.56 ± 1.5%
TodoMVC-Backbone/total                25.62 ± 3.0%       33.55 ± 2.1%
TodoMVC-JavaScript-ES5/total          34.62 ± 1.2%       30.62 ± 1.3%
TodoMVC-JavaScript-ES6-Webpack/total  39.93 ± 1.9%       36.60 ± 1.4%
TodoMVC-JavaScript-ES6/total          43.48 ± 1.3%       40.47 ± 1.8%
TodoMVC-Preact/total                  9.42 ± 3.8%        12.80 ± 4.5%
TodoMVC-React-Redux/total             39.06 ± 1.5%       45.2 ± 2.4%
TodoMVC-React/total                   32.83 ± 2.3%       38.98 ± 2.4%
TodoMVC-Vue/total                     15.54 ± 2.2%       19.38 ± 3.2%
TodoMVC-jQuery/total                  89.29 ± 0.80%      86.2 ± 1.6%
-------------------------------------------------------------------
Score                                 628.5 ± 0.71%      445.1 ± 0.98%

Looks like both browsers have rather slow first runs.
The Score variance is a bit less extreme in reality, since likely the metrics for Editor and StockChart are off.

@camillobruni camillobruni changed the title Add warmup test suite Add optional warmup test suite May 15, 2023
Comment thread resources/benchmark-runner.mjs Outdated
Comment thread resources/benchmark-runner.mjs Outdated
Comment thread resources/benchmark-runner.mjs Outdated
Comment thread resources/benchmark-runner.mjs Outdated
@camillobruni
camillobruni merged commit daa720b into WebKit:main May 16, 2023
@camillobruni
camillobruni deleted the 2023-03-29_add_dummy_workload branch October 18, 2023 09:52
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.

3 participants