Manual-sync mirror of chromium.googlesource.com/external/github.com/WebKit/Speedometer.git
Find a file
2025-02-25 12:35:39 -05:00
.github/workflows Add end2end tests (#470) 2025-01-22 12:56:07 +01:00
experimental/todomvc-localstorage Add local storage to todoMVC-es5 (#414) 2024-08-07 14:52:34 -04:00
resources News Site Next: simplify message popup integration (#471) 2025-01-29 10:18:04 -05:00
tests Add end2end tests (#470) 2025-01-22 12:56:07 +01:00
.eslintignore Remove tentative from the prettier and eslint ignore lists 2024-01-23 14:07:58 +01:00
.eslintrc Add root: true to the top level eslint configuration file 2024-01-23 14:07:58 +01:00
.gitignore Add Web Components and LIT versions of Complex-DOM TodoMVC (#285) 2023-09-06 09:23:41 -07:00
.npmrc Dev setup (#55) 2023-01-30 14:52:46 -08:00
.prettierignore Remove tentative from the prettier and eslint ignore lists 2024-01-23 14:07:58 +01:00
.prettierrc Add Eslint & Prettier (#57) 2023-02-08 13:53:53 -08:00
about.html Update about.html to link to each test's GitHub directories instead of directly linking to README.md files. (#384) 2024-02-29 17:56:23 -08: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 Display non-standard params on summary page (#469) 2025-01-09 17:08:47 +01:00
instructions.html Remove duplicated word. (#402) 2024-03-15 11:23:18 -07: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 Add end2end tests (#470) 2025-01-22 12:56:07 +01:00
package.json Add end2end tests (#470) 2025-01-22 12:56:07 +01: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.