浅谈JavaScript代码性能优化2
2024-09-04 20:41:40
一.减少判断层级
从下图代码中可以明显看出,同样的效果判断层级的减少可以优化性能
二.减少作用域链查找层级
简单解释下,下图中第一个运行foo函数,bar函数内打印name,bar作用域内没有name,所以作用域链往上查找,foo内部有name,
但是这种写法实际上是赋值,还要往上查找,全局作用域中查询到name,相比于下图第二个,多向上查了一级,所以时间要长一些。
(备注:不考虑内存空间消耗的前提下,具体根据产品来定。)
三.减少数据读取次数
简单解释下,对于多次频繁调用,比如数组,对象是比较慢的,因为按照引用关系先要找到堆内存中的位置,所以说减少时间的消耗,
就应该减少查找成员的次数,比如放到一个变量中缓存起来(备注:不考虑内存空间消耗的前提下,具体根据产品来定。)
四.字面量与构造式
简单解释下,下图中第一个new Object() 相当于调用函数,比较慢,而下图第二个相当于在堆区开辟空间,在里面放属性和值就可
以了.
再次举例说明,下图中第一个创建的仅仅是个字面量字符串,而第二个相当于创建了个字符串对象。
五.循环优化
简单解释下:下图二中把一个频繁使用到的值做了一个缓存,提升了执行效率。
如下图所示:在不考虑顺序的前提下,while循环递减比for循环,执行效率更高一些
六.减少声明及语句数
简答解释下:对于不频繁使用的数据,不建议先缓存,执行的时候再去获取,降低执行时对内存的消耗在运行之前有编译过程,表达式
量比较多,对单词要进行词法拆分变成词法单元,然后做语法分析,然后转成代码再去执行,时间消耗浪费在这里了.
减少声明变量解释也如上
最新文章
- ionic项目 环境搭建及基本操作
- dll 和 lib--初级
- android虚拟机
- linux中sed的用法【转】
- python下载网页源码 写入文本
- 爆零后的感受外加一道强联通分量HDU 4635的题解
- java9-3 返回类型
- Best Time to Buy and Sell Stock
- Introduction to Monte Carlo Tree Search (蒙特卡罗搜索树简介)
- linux下sublime配置c++11编译环境
- SDL实现按钮
- Knockout js 绑定 radio 时,当绑定整形的时候,绑定不生效
- JAVA经典算法40题
- jquery通过ajax向后台发送(checkbox)数组,并在后台接收,(发送的数据是checkedbox)
- ABAP中的枚举对象
- 无法获得数据库 'model' 上的排他锁 解决方法
- C#基础知识之属性
- 二维数组的查找(JAVA)
- 如何解决:对应的服务器 tls 为 tls 1.0,小程序要求的TLS版本必须大于等于1.2问题
- Bzoj2149拆迁队:cdq分治 凸包
热门文章
- Eureka系列(四) 获取服务Server端具体实现
- Spark性能调优篇二之重构RDD架构及RDD持久化
- Python高级语法-多继承MRO相关-多继承顺序(4.5.1)
- ctf/web源码泄露及利用办法
- WP | [MRCTF2020]Ezpop
- 5行Python代码就能实现刷爆全网的动态条形图!
- C# NPOI Excel多级表头导出多个表
- .net core 和 WPF 开发升讯威在线客服与营销系统:系统总体架构
- JavaSwing 船只停靠管理可视化(三)
- Docker 的 2020,实 ";鼠"; 不易!