Calculate the speed index and visual performance metrics from chrome dev tool timeline (recently: pmdartus -> paulirish)
Clone or download
Permalink
Failed to load latest commit information.
core v1.4.2 Sep 20, 2018
.editorconfig Initial commit Mar 24, 2016
.gitattributes Initial commit Mar 24, 2016
.gitignore Ignore package-lock Jun 7, 2018
.npmignore v1.4.1 Aug 7, 2018
.travis.yml travis should find ava Aug 7, 2018
cli.js add jsdoc types (#69) Aug 30, 2018
license Initial commit Mar 24, 2016
package.json v1.4.2 Sep 20, 2018
readme.md docs: add releasing notes Sep 20, 2018
screenshot.png Add screenshot Apr 10, 2016
tsconfig.json add jsdoc types (#69) Aug 30, 2018
yarn.lock add jsdoc types (#69) Aug 30, 2018

readme.md

speedline Build Status NPM speedline package

speedline screenshot

Background

The Navigation Timing API provides useful data that can be used to measure the performance of a website. Unfortunately this API has never been good at capturing the actual user experience.

The Speed Index, introduced by WebpageTest.org, aims to solve this issue. It measures how fast the page content is visually displayed. The current implementation is based on the Visual Progress from Video Capture calculation method described on the Speed Index page. The visual progress is calculated by comparing the distance between the histogram of the current frame and the final frame.

Speedline also calculates the perceptual speed index, based on the same principal as the original speed index, but it computes the visual progression between frames using the SSIM instead of the histogram distance.

Install the CLI

$ npm install -g speedline

Usage

Note: You should enable the screenshot options before recording the timeline.

$ speedline --help

  Usage
    $ speedline <timeline> [options]

  Options
    --pretty  Pretty print the output
    --fast    Skip parsing frames between similar ones
                Disclaimer: may result in different metrics due to skipped frames

  Examples
    $ speedline ./timeline.json

By default the CLI will output the same output as visual metrics. You can use the --pretty option if you want to have the histogram.

The speedline-core module

See readme of speedline-core.

License

MIT © Pierre-Marie Dartus

Dev

The repo is split into CLI and core. The core dependencies are duplicated in both package.json files. It is what it is.

To install:

yarn && yarn install-all

Releasing

Releasing both CLI and core:

yarn version # and bump appropriately
# update the version in core/package.json
git commit --amend --all # to amend into the tagged commit
npm publish
cd core && npm publish
git push