动画FPS计算
1、chrome的debug

2、PerformanceObserver
var observer = new PerformanceObserver(function (list) {
            var perfEntries = list.getEntries();
            for (var i = 0; i < perfEntries.length; i++) {
                console.log("frame: ", perfEntries[i]);
            }
        });
        // subscribe to Frame Timing
        observer.observe({ entryTypes: ['frame'] });
可是浏览器都不支持。。。。
3、requestAnimationFrame模拟
var rAF = function () {
            return (
                window.requestAnimationFrame ||
                window.webkitRequestAnimationFrame ||
                function (callback) {
                    window.setTimeout(callback, 1000 / 60);
                }
            );
        }();
        var frame = 0;
        var allFrameCount = 0;
        var lastTime = Date.now();
        var lastFameTime = Date.now();
        var loop = function () {
            var now = Date.now();
            var fs = (now - lastFameTime);
            var fps = Math.round(1000 / fs);
            lastFameTime = now;
            // 不置 0,在动画的开头及结尾记录此值的差值算出 FPS
            allFrameCount++;
            frame++;
            if (now > 1000 + lastTime) {
                var fps = Math.round((frame * 1000) / (now - lastTime));
                console.log(`${new Date()} 1S内 FPS:`, fps);
                frame = 0;
                lastTime = now;
            };
            rAF(loop);
        }
        loop();
如果我们需要统计某个特定动画过程的帧率,只需要在动画开始和结尾两处分别记录 allFrameCount 这个数值大小,再除以中间消耗的时间,也可以得出特定动画过程的 FPS 值。
值得注意的是,这个方法计算的结果和真实的帧率肯定是存在误差的,因为它是将每两次主线程执行 javascript 的时间间隔当成一帧,而非上面说的主线程加合成线程所消耗的时间为一帧。但是对于现阶段而言,算是一种可取的方法。
动画FPS计算的更多相关文章
- 帧率(FPS)计算的六种方法总结
		原文地址:http://blog.csdn.net/u012494876/article/details/53368164 帧率(FPS)计算是游戏编程中常见的一个话题.大体来说,总共有如下六种方法: ... 
- FPS计算New
		using UnityEngine; using System.Collections; public class CarGUI : MonoBehaviour { private const flo ... 
- 引擎设计跟踪(九.14.2b) 骨骼动画基本完成
		首先贴一个介绍max的sdk和骨骼动画的文章, 虽然很早的文章, 但是很有用, 感谢前辈们的贡献: 3Ds MAX骨骼动画导出插件编写 1.Dual Quaternion 关于Dual Quatern ... 
- Android窗口管理服务WindowManagerService显示窗口动画的原理分析
		文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8611754 在前一文中,我们分析了Activi ... 
- CSS 3学习——animation动画
		以下内容根据官方文档翻译以及自己的理解整理. 1. 介绍 本方案介绍动画(animations).通过动画,开发者可以将CSS属性值的变化指定为一个随时间变化的关键帧(keyframes)的集合.在 ... 
- 虾扯蛋:Android View动画 Animation不完全解析
		本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节 ... 
- React-Native 动画优化
		前言 动画对于客户端来说是非常重要的一部分,直接影响到应用的用户体验.前端对于动画优化通常使用CSS3样式来实现动画,以利用GPU加速特性.而React-Native由于渲染模式的不同,无法使用CSS ... 
- css3实现循环执行动画,且动画每次都有延迟
		一.最终效果 需求:gift图片的小动画每隔2s执行一次. 需求就一句话,我们看一下实现过程. 二.实现过程 1.网页结构 <!DOCTYPE html> <html lang=&q ... 
- Android Animation(动画)
		前言 Android 平台提供实现动画的解决方案(三种) 一.3.0以前,android支持两种动画: (1)Frame Animation:顺序播放事先做好的图像,与gif图片原理类似,是一种逐帧动 ... 
随机推荐
- Java 8实战之读书笔记五:超越Java 8
			四.超越Java 8 第13章 函数式的思考 下面是这一章中你应该掌握的关键概念.  从长远看,减少共享的可变数据结构能帮助你降低维护和调试程序的代价.  函数式编程支持无副作用的 ... 
- ES6——解构赋值
			解构赋值: 注意: 1.左右两边结构必须一样 练习1,2,3 2.右边必须是个东西(有值)练习4 3.声明和赋值不能分开(必须在一句话里完成)练习5 /* 练习1: // let arr = [1,2 ... 
- 【记录】ajax 设置请求header的Content-Type 为 application/json;charset=utf8
			具体案例如下 $.ajax({ url: context.state.IpccSendIm, method: 'POST', data: JSON.stringify(val), headers:{' ... 
- R语言中的数据分析函数
			数学类函数 在求有缺失值的子集的最大值时候,需要先用na.re=TRUE去掉缺失值. 求几个特定百分位数 round(x,n) n表示保留的小数点位数 分布类函数 rnorm,密度高的数字,生成概率就 ... 
- quotastats - 显示与配额子系统相关的统计信息
			SYNOPSIS(总览) quotastats DESCRIPTION(描述) 该命令显示与配额子系统相关的统计信息. 
- Linux设置数据库自动备份
			本文为转载,最末端为原地址 以CentOS 7.6系统与Oracle 11g为例: 一.先找到数据库的环境变量 如果是在root账户下,须先登录到数据库所在账户 su oraclecat ~/.bas ... 
- go语言学习之从例子开始
			[目录] go语言从例子开始之Example1.helloworld go语言从例子开始之Example2.类型 go语言从例子开始之Example3.变量 go语言从例子开始之Example4.常量 ... 
- ltp-ddt smp_basic
			SMP_S_FUNC_DUAL_CORE source functions.sh; cmd="stress-ng --matrix 4 -t 10s --perf --matrix-size ... 
- Wait and Click Element
			Wait and Click Element [Documentation] 等待元素出现并单击元素 [Arguments] ${locator} Wait Until Element Is Visi ... 
- chrome插件研发手册
			chrome插件研发手册 一:需求前景 对于研发的小伙伴来说,总会遇到这样的需求,想要通过代码操作已有网站的行为动作,如:自动填充表格内容(表单内容太多,想一键将表单内容填充):自动登录网站(网站登录 ... 
