fpsanalyzr
TypeScript icon, indicating that this package has built-in type declarations

0.8.15 • Public • Published

FpsAnalyzr

Code Style: Prettier TypeScript: Strict NPM version Join the chat at https://gitter.im/FullScreenShenanigans/community

Recording and analysis for framerate measurements.

Usage

Constructor

import { FPSAnalyzr } from "fpsanalyzr";

const fpsAnalyzer = new FpsAnalyzr();

setInterval(() => fpsAnalyzer.tick(performance.now()), 1000 / 60);

maximumKept

By default, the past 250 tick times are kept. You can override this by passing in a maximumKept number.

new FpsAnalyzr({
    maximumKept: 50,
});

tick

Records that a frame tick has happened.

Receives: number representing the current timestamp, in milliseconds.

fpsAnalyzer.tick(performance.now());

getAverage

Returns: number for the computed average framerate among stored measurements.

setInterval(() => fpsAnalyzer.tick(performance.now()), 1000 / 60);

setInterval(() => {
    const average = fpsAnalyzer.getAverage();
    console.log(`Average FPS this second: ${average}.`);
}, 1000);

getExtremes

Returns: Object with .highest and .lowest computed framerate among stored measurements.

setInterval(() => fpsAnalyzer.tick(performance.now()), 1000 / 60);

setInterval(() => {
    const { highest, lowest } = fpsAnalyzer.getExtremes();
    console.log(`FPS this second: from ${lowest} to ${highest}.`);
}, 1000);

getMedian

Returns: number for the computed median framerate among stored measurements.

setInterval(() => fpsAnalyzer.tick(performance.now()), 1000 / 60);

setInterval(() => {
    const median = fpsAnalyzer.getMedian();
    console.log(`Median FPS this second: ${median}.`);
}, 1000);

Development

This repository is a portion of the EightBittr monorepo. See its docs/Development.md for details on how to get started. 💖

Running Tests

yarn run test

Tests are written in Mocha and Chai. Their files are written using alongside source files under src/ and named *.test.ts?. Whenever you add, remove, or rename a *.test.t* file under src/, watch will re-run yarn run test:setup to regenerate the list of static test files in test/index.html. You can open that file in a browser to debug through the tests, or run yarn test:run to run them in headless Chrome.

Readme

Keywords

none

Package Sidebar

Install

npm i fpsanalyzr

Weekly Downloads

4

Version

0.8.15

License

MIT

Unpacked Size

48.7 kB

Total Files

28

Last publish

Collaborators

  • joshuakgoldberg