Manual-sync mirror of chromium.googlesource.com/external/github.com/WebKit/Speedometer.git
Find a file
Camillo Bruni 4332004a86
Add more delay params (#547)
For locall investigation we found that having these additional delay params was very helpful:

- waitAfterSetup: Post setup delay (before running the steps)
- waitAfterSuite: Post suite delay (after running all steps)
2026-07-07 11:23:04 +02:00
.github/workflows Update github workloads (#478) 2025-02-27 17:59:21 +01:00
resources Add more delay params (#547) 2026-07-07 11:23:04 +02:00
suites Move suites to dedicated folder (#549) 2026-07-06 10:05:02 +02:00
suites-experimental Move suites to dedicated folder (#549) 2026-07-06 10:05:02 +02:00
tests Move suites to dedicated folder (#549) 2026-07-06 10:05:02 +02:00
.eslintignore Move suites to dedicated folder (#549) 2026-07-06 10:05:02 +02:00
.eslintrc Add root: true to the top level eslint configuration file 2024-01-23 14:07:58 +01:00
.gitignore Move suites to dedicated folder (#549) 2026-07-06 10:05:02 +02:00
.npmrc Dev setup (#55) 2023-01-30 14:52:46 -08:00
.prettierignore Move suites to dedicated folder (#549) 2026-07-06 10:05:02 +02:00
.prettierrc Experimental Workload: Responsive Design (#453) 2026-06-01 16:28:42 -07:00
about.html Use "next" as version on main consistently (#497) 2025-04-16 18:44:59 +02:00
babel.config.json Ember - Step 2 - format from root / cleanup (#119) 2023-03-30 18:13:18 +02:00
Development.md Change default port to 8900 (#429) 2024-09-10 13:09:29 -07:00
Governance.md Add Eslint & Prettier (#57) 2023-02-08 13:53:53 -08:00
index.html Add measurePrepare param (#440) 2025-05-27 16:28:45 +02:00
instructions.html Use "next" as version on main consistently (#497) 2025-04-16 18:44:59 +02:00
LICENSE Update license dates, add Microsoft (#393) 2024-03-05 12:09:16 -08:00
netlify.toml Add a netlify configuration file (#472) 2025-01-22 14:40:54 +01:00
package-lock.json Better test error logging (#527) 2026-06-16 15:41:24 +02:00
package.json Better test error logging (#527) 2026-06-16 15:41:24 +02:00
README.md Add Measurement and Scoring details to README.md (#467) 2025-01-08 11:26:46 +01:00
Testing.md Update Testing.md to include Microsoft Edge (#392) 2024-03-04 10:40:16 -08:00

What is Speedometer?

Speedometer is a benchmark for web browsers that measures Web application responsiveness by timing simulated user interactions on various workloads. Our primary goal is to make it reflect the real-world Web as much as possible. When a browser improves its score on the benchmark, actual users should benefit. In order to achieve this, it should:

  • Test end-to-end user journeys instead of testing specific features in a tight loop. Each test should exercise the full set of what’s needed from the engine in order for a user to accomplish a task.
  • Evolve over time, adapting to the present Web on a regular basis. This should be informed by current usage data, and by consensus about features which are important for engines to optimize to provide a consistent experience for users and site authors.
  • Be accessible to the public and useful to browser engineers. It should run in every modern browser by visiting a normal web page. It should run relatively quickly, while providing enough test coverage to be reflective of the real-world Web.

Score and Test Measurement

Each test can contain several steps who contributed to the test duration. Note that the prepare step of a test is unmeasured and thus does not contribute to the score. All following test steps are measured and summed up in the test step time.

Each step consists of the following phases:

Sync:
Time spent in synchronous JS execution.
Async:
Time spent in asynchronous JS like Promise or setTimeout tasks scheduled by the sync-step.

Score

The final benchmark score is calculated based of the inverse of geomean of all tests. We average the score over multiple iterations with the arithmetic mean. By using the geomean to combine the test durations we maintain the invariant that relative improvements are favoured equally amongst all tests, even though they can have vastly different durations.