发表于谷歌WebPerf(伦敦WebPerf集团),2014年8月26日。

高效的JavaScript Web应用必须流畅,快速。与用户交互的任何应用程序,都需要考虑如何确保内存有效使用,因为如果消耗过多,页面就会崩溃,迫使用户重新加载。而你只能躲在角落哭泣。
自动垃圾收集是不能代替有效的内存管理的,特别是在大型,长时间运行的Web应用程序中。在这次讲座中,我们将演示如何通过Chrome的DevTools对内存进行有效的管理。
并了解如何解决性能问题,如内存泄漏,频繁的垃圾收集暂停,和整体内存膨胀,那些真正让你耗费精力的东西。
Addy Osmani在他的PPT中展示了很多会在Chrome V8中产生内存泄漏的示例:
1) Delete一个Object的属性会让此对象变慢(多耗费15倍的内存)
复制代码 代码如下:
var o = { x: 'y' };
delete o.x; //此时o会成一个慢对象
o.x; //
var o = { x: 'y' };
o = null; //应该这样
2) 闭包
在闭包中引入闭包外部的变量时,当闭包结束时此对象无法被垃圾回收(GC)。
复制代码 代码如下:
var a = function() {
var largeStr = new Array(1000000).join('x');
return function() {
return largeStr;
}
}();
3) DOM泄露
当原有的COM被移除时,子结点引用没有被移除则无法回收。
复制代码 代码如下:
var select = document.querySelector;
var treeRef = select('#tree');
//在COM树中leafRef是treeFre的一个子结点
var leafRef = select('#leaf');
var body = select('body');
body.removeChild(treeRef);
//#tree不能被回收入,因为treeRef还在
//解决方法:
treeRef = null;
//tree还不能被回收,因为叶子结果leafRef还在
leafRef = null;
//现在#tree可以被释放了。
4) Timers计(定)时器泄露
定时器也是常见产生内存泄露的地方:
复制代码 代码如下:
for (var i = 0; i < 90000; i++) {
var buggyObject = {
callAgain: function() {
var ref = this;
var val = setTimeout(function() {
ref.callAgain();
}, 90000);
}
}
buggyObject.callAgain();
//虽然你想回收但是timer还在
buggyObject = null;
}
5) 调试内存
Chrome自带的内存调试工具可以很方便地查看内存使用情况和内存泄露:
在 Timeline -> Memory 点击record即可:
更多内容请查看原文PPT。
相关推荐:
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
SEO优化工具优势:提升网站排名,带来流量和转化的秘密武器,ai圆形造字
为什么关键词太少会影响你的网络营销效果?,陕西seo网站推广工具
什么是SEO可以自学吗,seo零基础可以自学吗 ,ai1紫
重生成AI:突破科技前沿,开启智能未来
seo网站代码是什么,网站专业术语中seo意思是什么 ,拟人ai制作
chatai写作免费一键生成,轻松解决写作难题!,陈逗逗ai换脸在线看
seo软件是什么职位,seo用的是什么软件 ,ai感知树
seo用什么论坛引流,seo引流方法 ,ai写作续写神器
Chatttst:开启智能沟通新时代的无限可能,上海联通ai
SEO优化排名:让您的网站在搜索引擎中脱颖而出,我ai 达瓦仓决
WPQQ-开启数字时代的智能连接新纪元,杭州网站推广厂家电话
ChatGPTO1免费:突破智能聊天的极限,体验AI无限可能,糯米ai唱歌
ChatGPT全球宕机:人工智能的崩塌与未来的挑战,中国ai和美国ai教父
AI文章比对技术:引领写作与内容审核的新革命,ai智能写作小说免费
AI一键生成文章网页版,让内容创作更简单高效
ChatGPT免费版每天提问有次数限制吗?揭秘如何高效使用AI助手!,机甲ai手绘
一秒采集:提升效率、创造价值的秘密武器,苏州网站整站优化
ChatGPT发生故障,背后隐藏着哪些不为人知的原因与挑战?,硬件ai和软件ai
SEO优化是做什么的?让你的网站流量飙升的秘密武器,乳腺癌ai作用机理
seo需要什么人员,seo需要什么技能 ,画大学ai
ChatGPT崩了?用户称打开是一片空白,背后隐藏了什么?,ai 新技巧
ChatGPT打不开了吗?如何快速解决常见问题,恢复顺畅体验!,ai13212511845
什么是seo运营,什么是seo营销 ,ai绘画沙地
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,解决您的使用困扰!,ai光晕制作
亚马逊seo信息是什么,亚马逊seo关键词优化软件 ,光谷ai
seo渠道优化是什么,seo渠道推广怎么做 ,ai121333
为什么做抖音seo,为什么做抖音推广 ,描边ai虚线
ChatGPT:我目前无法查看或解析附件,您是否遇到过这样的困扰?,ai+燃烧
SEO深度解析:如何通过深度优化提升网站排名,带来流量和转化,咸宁网站建设大概费用
ChatGPT中文版下载免费版:智能对话新时代,尽在,ai光波
SEO技巧提升网站流量和排名,助力企业快速崛起,ai080206.
AI人工智能文章生成平台,释放创作无限可能
SEO运营工作是什么,seo公司运营 ,720516AI
用AI生成文章,让创作更简单高效
SEO有点:揭秘优化之道,提升网站排名的秘诀,广州抖音seo厂家地址
ChatGPT-4中文免费破解版:无需付费,体验最强AI助手,ai写作生成器官方下载
seo矩阵运营中心是什么,seo矩阵运营中心是什么意思啊 ,北京ai特效
ChatGPT内部HTTP接口文档-为开发者提供高效便捷的AI服务接入方式,安屿ai
智能AI写作生成:如何借助人工智能提升创作效率与质量
OpenAI推出的GPT-4Turbo大幅降低了AI应用成本,推动了AI技术的普及化,ai*版
怎么用AI写文:让创作更轻松,效率翻倍
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
“关键词指白”:揭秘如何通过精准关键词优化实现流量暴增,全面分析网站seo
SEO非常:如何利用SEO提升网站排名与流量,助力品牌快速成长,绥化短视频营销推广
seo用什么写属性写,seo属于什么 ,芭田科学施肥AI
《命运交错的轨迹:小说背后的无尽魅力》,seo优化huifachina
SEO建议:如何通过优化提升网站流量,赢得市场竞争,自媒体网站免费推广平台
SEO永远,数字营销的核心力量,广州seo搜索栏内容
SEO详解:如何优化你的网站提升排名,获得更多流量,伊春湖南网站优化推广