【stats.js】JavaScript性能监控器

3,493 阅读2分钟
转:www.kutu66.com//GitHub/art…


  • 源代码网址:www.github.com/mrdoob/stat…
  • stats.js源代码文档
  • stats.js源代码下载
  • Git URL:

    git://www.github.com/mrdoob/stats.js.git

    Git Clone代码到本地:

    git clone http://www.github.com/mrdoob/stats.js

    Subversion代码到本地:

    $ svn co --depth empty http://www.github.com/mrdoob/stats.js
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    stats.js JavaScript性能监视器

    这里类提供一个简单的信息框,可以帮助你监视代码性能。

    • 在最后一秒内显示帧的帧渲染。 数字越高越好。
    • 毫秒的毫秒需要渲染帧。 数字越小越好。
    • MB的分配内存。 ( 使用 --enable-precise-memory-info 运行 Chrome )
    • 自定义用户定义的面板支持。

    屏幕截图

    fps.pngms.pngmb.pngcustom.png

    用法

    var stats =newStats();
    stats.showPanel( 1 ); // 0: fps, 1: ms, 2: mb, 3+: 
    
    customdocument.body.appendChild( stats.dom );
    
    function animate() {
    	stats.begin();
    	// monitored code goes herestats.end();
    	requestAnimationFrame( animate );
    }
    
    requestAnimationFrame( animate );

    书签

    你可以使用以下bookmarklet将这里代码添加到任何页面:

    javascript:(function(){var script=document.createElement('script');script.onload=function(){var stats=newStats();document.body.appendChild(stats.dom);requestAnimationFrame(functionloop(){stats.update();requestAnimationFrame(loop)});};script.src='//rawgit.com/mrdoob/stats.js/master/build/stats.min.js';document.head.appendChild(script);})()

    示例

    JavaScript性能监控器,可以测试webgl代码的渲染性能。

    • 构造函数Stats

      //创建stats对象
      var myStats=new Stats();
    • 界面输出控制

      使用构造函数Stats创建对象时,构造函数中的Javascript代码默认创建一个id是stats的div元素,默认位置页面左上角,如果想设置界面的显示效果,可以修改stats源码

      //把stats创建的div元素插入页面,domElement是对象的属性,属性值就是stats创建的div元素

      document.getElementById("body").appendChild(myStats.domElement);
    • stats方法setMode(mode)

      可以已通过setMode()方法的参数mode的数值设置首次打开页面,测试结果的显示模式,鼠标单击可以更换不同的显示模式

      setMode参数mode默认值为0

      设置测试结果显示模式为MS

      myStats.setMode(1);
      参数mode模式意义
      0FPS刷新频率,一秒渲染次数
      1MS刷新周期,渲染一次时间
    • stats方法update()

      //requestAnimationFrame循环调用的函数中调用方法update(),来刷新时间

      myStats.update();