This project measures the startup latency and binary size of Firebase JavaScript SDKs.
This repository is maintained by Googlers but is not a supported Firebase product. Issues here are answered by maintainers and other community members on GitHub on a best-effort basis.
The measurement process involves:
- hosting webpages on Firebase which downloads and executes SDKs to be tested
- run WebPageTest against above webpages to obtain measurement numbers
- download SDK files to local file system and calculate the file sizes
- aggregate raw samples and store results into database (Google Cloud Sql)
See Firebase Hosting, WebPageTest and Google Cloud Sql for more information.
The above aggregated results are then pulled from data storage and presented in a Google Data Studio dashboard.
See Google Data Studio for more information.
The test requires a Firebase project (which is also a GCP project) for hosting webpages and providing a sql database instance.
It also requires a few environment variables:
- WPT_API_KEY: The api key used to submit request to WebPageTest
- FIREBASE_TOKEN: The authentication token used for webpages deployment (via Firebase CLI)
- CLOUD_SQL_HOST: The host of Cloud Sql database instance
- CLOUD_SQL_USER: The username used to login to database
- CLOUD_SQL_PASSWORD: The password used to login to database
yarn test
will trigger a trial run of the test, which is conducting the test
against a small combination of devices/browsers, network conditions and CDNs.
--version
can be supplied to test against a specific version of SDK, otherwise
the test will always run against the latest release version.
See package.json
for details.
Formal run is to test against a comprehensive list of devices/browsers, network conditions and CDNs. It is scheduled to run daily and always against the latest released version.
To contribute a change, check out the contributing guide.
The contents of this repository is licensed under the Apache License, version 2.0.