Package Exports
- speedline
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (speedline) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
speedline 
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.
CLI
Install
$ npm install -g speedline
Usage
Note: You should enable the
screenshot
options before recording the timeline.
$ speedline --help
Usage
$ speedline <timeline> [options]
Options
-p, --pretty Pretty print the output
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.
Module
Install
$ npm install --save speedline
Usage
const speedline = require('speedline');
speedline('./timeline').then(results => {
console.log('Speed Index value:', results.speedIndex);
});
API
speedline(timeline)
- (string | object[] | DevtoolsTimelineModel)
timeline
- returns (Promise) resolving with an object containing:
speedIndex
(number) - speed index value.perceptualSpeedIndex
(number) - perceptual speed index value.first
(number) - duration before the first visual change in ms.complete
(number) - duration before the last visual change in ms.duration
(number) - timeline recording duration in ms.frames
(Frame[]) - array of all the frames extracted from the timeline.
If the type of the timeline parameter is:
string
- the parameter represents the location of the of file containing the timeline.array
- the parameter represents the content of the timeline file.DevtoolsTimelineModel
- the parameter represents the parsed content of the timeline. It avoids recomputing the timeline model if you call this method several times.
Frame
Object representing a single screenshot.
frame.getHistogram()
: (number[][]) - returns the frame histogram. Note that light pixels informations are removed from the histogram, for better speed index calculation accuracy.frame.getTimeStamp()
: (number) - return the frame timestamp.frame.getImage()
: (Buffer) - return the frame content.frame.getProgress()
: (number) - return the frame visual progress.frame.getPerceptualProgress()
: (number) - return the frame perceptual visual progress.
License
MIT © Pierre-Marie Dartus