web性能优化--算法优化(四)
2024-09-03 19:41:36
- 避免for-in
- 把数组长度保存在局部变量中
- 较少迭代次数(Duffs Device)
- 基于函数的循环比基于循环的迭代消耗性能更多
- 优化if-else,一般switch比if-else速度快(hash tabel)
1)避免用for-in
常见的循环有:for、do-while、while、for-in。for-in循环比较慢,因为每次迭代操作时会同事搜索实例或原型属性。
2)把数据数组长度保存在局部变量中
for(var i = 0, len = items.length;i < len; i++){
process(items[i]);
}
3)减少迭代次数(Duffs Device)http://blog.csdn.net/cengjingcanghai123/article/details/21231865
<script type="text/javascript">
var iterations = Math.floor(items.length/8),
startAt = items.length % 8,
i = 0;
do {
switch(startAt) {
case 0: process(items[i++]);
case 7: process(items[i++]);
case 6: process(items[i++]);
case 5: process(items[i++]);
case 4: process(items[i++]);
case 3: process(items[i++]);
case 2: process(items[i++]);
case 1: process(items[i++]);
}
startAt = 0;
}while(--iterations);
</script>
4)基于函数的循环比基于循环的迭代消耗性能更多。例如:for循环迭代比forEach函数迭代性能高
5)优化if-else,一般switch比if-else速度快,但是在判断条件多时,使用查找表比if-else和switch都快
最新文章
- YY一下微信线下支付的场景
- Java 批量插入数据(Oracle)
- delphi 控件大全(确实很全)
- 9.请写出PHP5权限控制修饰符
- C++中的vector
- javascript跨域通信(一):利用location.hash实现跨域iframe自适应
- JNI字段描述符-Java Native Interface Field Descriptors
- 让你的PHP程序真正的实现多线程(PHP多线程类)(转)
- lucene4入门(1)
- 启动hbase时,hregionserver没有启动的原因
- C++沉思录之三——设计容器类
- 2015第23周一SVN插件安装
- P1092 虫食算
- .net随笔--不好归类的
- Spring Security(二十二):6.4 Method Security
- 【BZOJ3252】攻略(长链剖分,贪心)
- python 减少可调用对象的参数个数
- Spring Boot 揭秘与实战(三) 日志框架篇 - 如何快速集成日志系统
- padding 扩大边距 margin-top 与页面顶部的距离 hover鼠标移动到上面出现背景色CSS
- js字符转换为数字
热门文章
- apache不记录指定类型的访问日志
- 十三:jinja2过滤器之default过滤器和or过滤器
- 使用svctraceviewer查看WCF服务异常信息
- cocos2dx[3.2](7) 核心类Director/Scene/Layer/Sprite
- squid的三种模式
- 利用python求非线性方程
- AndroidStudio ADB WIFI :adb wifi scan ip address
- 2019JAVA第八次实验报告
- [转帖]软件的变革与 AOT
- mybatis 批量操作 ------持续更新