收藏 分销(赏)

JavaScript避免内存泄露及内存管理技巧.doc

上传人:精**** 文档编号:9769164 上传时间:2025-04-07 格式:DOC 页数:2 大小:18KB 下载积分:5 金币
下载 相关 举报
JavaScript避免内存泄露及内存管理技巧.doc_第1页
第1页 / 共2页
JavaScript避免内存泄露及内存管理技巧.doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
易贤网网校上线了!>>>点击进入<<<网校开发及拥有的课件范围涉及公务员、财会类、外语类、外贸类、学历类、职业资格类、计算机类、建筑工程类、等9大类考试的在线网络培训辅导。   本文实例讲述了JavaScript避免内存泄露及内存管理技巧,非常实用。分享给大家供大家参考之用。具体方法如下:   本文内容源自谷歌WebPerf(伦敦WebPerf集团),2014年8月26日。   一般来说,高效的JavaScript Web应用必须流畅,快速。与用户交互的任何应用程序,都需要考虑如何确保内存有效使用,因为如果消耗过多,页面就会崩溃,迫使用户重新加载。而你只能躲在角落哭泣。   自动垃圾收集是不能代替有效的内存管理的,特别是在大型,长时间运行的Web应用程序中。本文中,我们将演示如何通过Chrome的DevTools对内存进行有效的管理。   并了解如何解决性能问题,如内存泄漏,频繁的垃圾收集暂停,和整体内存膨胀,那些真正让你耗费精力的东西。   Addy Osmani在他的PPT中展示了很多会在Chrome V8中产生内存泄漏的示例:   1) Delete一个Object的属性会让此对象变慢(多耗费15倍的内存)   view sourceprint?1 var o = { x: 'y' };    2 delete o.x; //此时o会成一个慢对象    3 o.x; //    4       5 var o = { x: 'y' };    6 o = null; //应该这样   2) 闭包   在闭包中引入闭包外部的变量时,当闭包结束时此对象无法被垃圾回收(GC)。   view sourceprint?1 var a = function() {    2  var largeStr = new Array(1000000).join('x');    3  return function() {    4   return largeStr;    5  }    6 }();   3) DOM泄露   当原有的COM被移除时,子结点引用没有被移除则无法回收。   view sourceprint?01 var select = document.querySelector;    02 var treeRef = select('#tree');    03       04 //在COM树中leafRef是treeFre的一个子结点    05 var leafRef = select('#leaf');     06 var body = select('body');    07       08 body.removeChild(treeRef);    09       10 //#tree不能被回收入,因为treeRef还在    11 //解决方法:    12 treeRef = null;    13       14 //tree还不能被回收,因为叶子结果leafRef还在    15 leafRef = null;    16       17 //现在#tree可以被释放了。   4) Timers计(定)时器泄露   定时器也是常见产生内存泄露的地方:   view sourceprint?01 for (var i = 0; i < 90000; i++) {    02  var buggyObject = {    03   callAgain: function() {    04    var ref = this;    05    var val = setTimeout(function() {    06     ref.callAgain();    07    }, 90000);    08   }    09  }    10       11  buggyObject.callAgain();    12  //虽然你想回收但是timer还在    13  buggyObject = null;    14 }   更多信息请查看IT技术专栏   
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服