Show EJ: Efficient and accurate FPS meter, with minimalistic UI

栏目: IT技术 · 发布时间: 5年前

内容简介:While working with CSS, HTML, and JavaScript, it's always important to take care of browser rendering in browser DevTools. To find issues with rendering, we are using "Timeline" with "JS Profile" and "Memory" consumption tracking. Those tools are great whe

Measure FPS

Show EJ: Efficient and accurate FPS meter, with minimalistic UI Show EJ: Efficient and accurate FPS meter, with minimalistic UI

While working with CSS, HTML, and JavaScript, it's always important to take care of browser rendering in browser DevTools. To find issues with rendering, we are using "Timeline" with "JS Profile" and "Memory" consumption tracking. Those tools are great when you know about the existing problem.

During our development process, we are using FPS-meter, which gives a signal when "Long" frames occur. To see meter action, visit this link ( in the left bottom corner ). Play with sliders to see how different CSS effects may slow down the rendering process, blur is the most "expensive" CSS3 filter.

This library works on mobile devices. It utilizes performance.now to measure time frame and requestAnimationFrame to measure rendered frames, both APIs are very efficient and have a minor impact ( for correct FPS measurement ).

Demo:

  • Demo can be found on this website ( in the left bottom corner ).

Drop-in version

Installation is not required, copy-paste script into browser' console:

Installation

NPM install

npm i --save fps-m

Meteor add

meteor add ostrio:fps-meter

NPM require

// require
const FPSMeter = require('fps-m');

// ES6 import:
import FPSMeter from 'fps-m';

Meteor: ES6 Import

import { FPSMeter } from 'meteor/ostrio:fps-meter';

Quick start

(new FPSMeter({ui: true})).start();

API

new FPSMeter([opts])

  • opts { Object }
  • opts.ui { Boolean } - Render small box with current FPS into body , default: false
  • opts.reactive { Boolean } - Store current FPS as reactive data source, default: false
// Quick start:
const fps = new FPSMeter({ui: true, reactive: false});
// fps.start();
// fps.stop();

Methods

  • FPSMeter#start() — Use to start measuring FPS. If {ui: true} small box with current FPS will be rendered into body
  • FPSMeter#stop() — Use to stop measuring FPS. If {ui: true} box with current FPS will be removed from body
  • FPSMeter#pause() — Use to pause measuring FPS. If {ui: true} box with current FPS will remain in body
  • FPSMeter#resume() — Use to resume measuring FPS
  • FPSMeter#toggle() — Use to toggle (pause/resume) measuring FPS

Properties

  • FPSMeter#isRunning { Boolean } — true if meter is running and false when meter is on pause, stopped or has not started yet
  • FPSMeter#template { Blaze.View | undefined } — When {ui: true} this property holds Blaze.View instance, otherwise its undefined
  • FPSMeter#element { DOMElement | undefined } — When {ui: true} this property holds DOMElement of FPSMeter UI element div , otherwise its undefined
  • FPSMeter#fps { Number | ReactiveVar } — When {reactive: false} it holds a { Number } with current FPS. When {reactive: true} it is an instance of {*ReactiveVar*} . Use .get() method to return current FPS. It's reactive data source, and can be used in template:
const fps = new FPSMeter({ui: false, reactive: true});

Template.currentFPS.helpers({
  currentFPS() {
    return fps.fps.get();
  }
});

Template.currentFPS.events({
  'click [data-start-fps]'(e) {
    e.preventDefault();
    fps.start();
    return false;
  },
  'click [data-stop-fps]'(e) {
    e.preventDefault();
    fps.stop();
    return false;
  }
});
<template name="currentFPS">
  <div>{{currentFPS}}</div>
  <button data-start-fps>Start</button>
  <button data-stop-fps>Stop</button>
</template>

Pause/Resume by clicking on UI box

const fps = new FPSMeter({ ui: true });
fps.start();
fps.element.addEventListener('click', fps.toggle.bind(fps), { passive: true, capture: false });

Support this project:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法(英文版•第4版)

算法(英文版•第4版)

[美] Robert Sedgewick、[美] Kevin Wayne / 人民邮电出版社 / 2016-3 / 129.00元

本书作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4 版具体给出了每位程序员应知应会的50 个算法,提供了实际代码,而且这些Java 代码实现采用了模块化的编程风格,读者可以方便地加以改造。本书配套网站提供了本书内容的摘要及更多的代码实现、测试数据、练习、教学课件等资源。一起来看看 《算法(英文版•第4版)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具