setTimeout与setInterval性能比较
来源:互联网 发布:软件采样稳定信号算法 编辑:程序博客网 时间:2024/06/16 16:44
谈到动画,就避不开setTimeout与setInterval,都能实现动画效果,但对我来说,只有需要手动控制帧的速率、频率时,我才会优先选择setTimeout,因为我知道,论性能,setTimeout略逊于setTimeout。
造成性能差异的原因,主要有两点:
1. setTimemout迭代式方法的调用方式,压栈、出栈都不是轻量级的任务;
2. setTimeout自身消耗了部分性能;
为了验证自己的想法,特意用Chrome时间线工具进行了监测:
从下图可以看出,setInterval只执行一次,并且定时器的ID始终不变,从执行堆栈看,后续的所有任务都全由调用的函数(move)承担,所以自身消耗的时间较短,其他任务消耗的时间较多,21us VS 610us。
从setTimeout的时间线可以看出,setTimeout需要执行多次,并且每次执行,定时器的执行ID都会生成新的ID,从执行堆栈看,setTimeout的相关指令还会执行两次,所以自身消耗的时间更多,见下图。
测试代码
var item = $('#imgHy'), count = 10;function move() { item.css({ "margin-top" : 0 - count }) if(count < 500) { count = count + 10; // 启用setInterval时,注销此代码 setTimeout(move, 10) } else { // 启用setTimeout时,注销此代码 //clearInterval(timer) }}// 启用setInterval时,注销此代码setTimeout(move, 10)// 启用setTimeout时,注销此代码//var timer = setInterval(move, 10)
0 0
- setTimeout与setInterval性能比较
- setTimeout与setInterval区别
- setTimeout()与setInterval()
- setTimeOut与 setInterval区别
- setTimeout与setInterval区别
- setTimeout与setInterval
- Window.setTimeout()与setInterval( )
- setTimeout与setInterval
- setTimeout与setInterval
- setInterval与setTimeout用法
- setInterval与setTimeout
- setTimeout与setInterval区别
- setInterval与setTimeout区别
- setTimeout与setInterval
- 【JavaScript】setTimeout与setInterval
- setInterval 与setTimeout
- setTimeout与setInterval区别
- setTimeout 与setInterval
- Spring Boot 集成Mybatis操作数据库
- 设计模式:原型模式-prototype
- android_63_drawBitmap_canvas
- ubuntu上用Let’s Encrypt开通mosquitto的SSL/TLS加密
- 成人影片公司Soft on Demand 在东京开设首家SOD VR成人网咖
- setTimeout与setInterval性能比较
- 5-7 Complete Binary Search Tree (30分)
- 六边形架构理论介绍
- Oracle登录 ORA-01033: ORACLE正在初始化或关闭的解决办法
- flume 的kafka sink及 taill 命令
- Docker学习总结(19)——Google开源的容器集群管理系统Kubernetes介绍
- iptables详解
- 树莓派3的配置与安装
- 嵌入式处理器中DHCP移植