Develop tools

Stats

let stats = new [dtc.]dev.Stats([option])

提供了一个简单的信息框,可帮助您监控代码性能。

FPS 帧在最后一秒呈现。 数字越高越好。
MS 渲染帧所需的毫秒数。 数字越低越好。
MB MBytes分配的内存。 (使用--enable-precise-memory-info)。
CUSTOM 用户定义的面板支持。

Arguments
[object]配置对

默认值:
let option = { dragable: false, x: 0, y: 0, container: null }

参数名称 参数含义 是否必须 默认值
dragable 是否可拖拽 false
container stats的容器 body
x 相对于视口x轴方向位置 0
y 相对于视口y轴方向位置 0

Returns
object: Stats实例对象

实例方法

showPanel()

设置显示的面板

begin()

开始

end()

结束状态监控,返回结束时间

update()

更新状态

addPanel()

新增自定义面板

实例属性

REVISION: 版本号

dom: dom元素

Example

基础用法

let option = {
      dragable: true,
      x: 100,
      y: 100,
      container: '#app'
    }

let stats = new [dtc.]dev.Stats(option);

stats.showPanel( 1 ); // 0: fps, 1: ms, 2: mb, 3+: custom

function animate() {

	stats.begin();

	// monitored code goes here

	stats.end();

	requestAnimationFrame( animate );

}

requestAnimationFrame( animate );

自定义监控

let stats = new [dtc.]dev.Stats();
let xPanel = stats.addPanel( new [dtc.]dev.Stats.Panel( 'x', '#ff8', '#221' ) );
let yPanel = stats.addPanel( new [dtc.]dev.Stats.Panel( 'y', '#f8f', '#212' ) );
stats.showPanel( 3 );
document.body.appendChild( stats.dom );
let canvas = document.createElement( 'canvas' );
canvas.width = 512;
canvas.height = 512;
document.body.appendChild( canvas );
let context = canvas.getContext( '2d' );
context.fillStyle = 'rgba(127,0,255,0.05)';
let test = [];
function animate() {
  let time = performance.now() / 1000;
  context.clearRect( 0, 0, 512, 512 );
  stats.begin();
  for ( let i = 0; i < 2000; i ++ ) {
    let x = Math.cos( time + i * 0.01 ) * 196 + 256;
    let y = Math.sin( time + i * 0.01234 ) * 196 + 256;
    context.beginPath();
    context.arc( x, y, 10, 0, Math.PI * 2, true );
    context.fill();
  }
  stats.end();
  xPanel.update( x, 460 );
  yPanel.update( y, 460 );
  requestAnimationFrame( animate );
}
animate();

示例

update

通过update方法更新监控状态

var array = [];
  for ( var i = 0; i < 50; i ++ ) {
    var stats = new Stats();
    stats.dom.style.position = 'relative';
    stats.dom.style.float = 'left';
    document.body.appendChild( stats.dom );
    array.push( stats );
  }
  function animate() {
    for ( var i = 0; i < array.length; i ++ ) {
      var stats = array[ i ];
      stats.update();
    }
    requestAnimationFrame( animate );
  }
  animate();

示例

上次更新: 1/22/2019, 11:09:53 AM