13 个JavaScript 性能提升技巧分享


Posted in Javascript onJuly 26, 2012

Daniel Clifford 在 Google I/O 2012 上做了一个精彩的演讲“Breaking the JavaScript Speed Limit
with V8”。在演讲中,他深入解释了13个简单的代码优化方法,可以让你的代码在 Chrome 的 V8 JavaScript 引擎编译/运行你的 JavaScript 代码更加快速。在演讲中,他解释了怎么优化,并且解释了原因。下面简明的列出了优化的要点:

1. 在构造函数中初始化所有的对象

2. 始终用相同的顺序初始化对象

3. 尽量使用数字

4. 为数组使用从0开始的连续的主键

5. 不要提前分配大型数组(>64K),你应该在使用的过程中扩大数组

6. 不要删除数组中的元素

7. 不要装在没有初始化或者已经删除的元素

8. 对于固定大小的数组,使用”array literals“初始化

9. 在使用前分配正确的空间大小给小数组

10. 不要在数值数组中存储非数值内容

11. 尽量使用单一类型(monomorphic)而不是多类型(polymorphic)

12. 不要使用 try{} catch{}

13. 在优化后避免在方法中修隐藏的类

Javascript 相关文章推荐
jQuery插件简单实现方法
Jul 18 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
BootStrap网页中代码显示用法详解
Oct 21 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
Dec 30 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
Jun 09 Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 Javascript
JavaScript输出所选择起始与结束日期的方法
Jul 12 Javascript
vue脚手架中配置Sass的方法
Jan 04 Javascript
深入理解node.js http模块
Jan 24 Javascript
jQuery简单判断值是否存在于数组中的方法示例
Apr 17 jQuery
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
Aug 16 Javascript
小程序接口的promise化的实现方法
Dec 11 Javascript
了解一点js的Eval函数
Jul 26 #Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
Jul 26 #Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 #Javascript
浅谈javascript的原型继承
Jul 25 #Javascript
基于jquery的多功能软键盘插件
Jul 25 #Javascript
基于jQuery判断两个元素是否有重叠部分的代码
Jul 25 #Javascript
JavaScript中的apply()方法和call()方法使用介绍
Jul 25 #Javascript
You might like
php 删除无限级目录与文件代码共享
2008/11/22 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
JS input 数字验证代码
2009/07/30 Javascript
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
JS弹出新窗口被拦截的解决方法
2016/08/09 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
Openlayers实现图形绘制
2020/09/28 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
python批量图片处理简单示例
2019/08/06 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
Python如何使用input函数获取输入
2020/08/06 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
公司法定代表人授权委托书
2014/09/29 职场文书
老公婚前保证书
2015/02/28 职场文书
技术员岗位职责范本
2015/04/11 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python