多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > Javascript 內存泄漏的幾種模式

Javascript 內存泄漏的幾種模式

來源:程序員人生   發布時間:2014-01-16 19:23:10 閱讀次數:2888次

JavaScript 是一種垃圾收集式語言,這就是說,內存是根據對象的創建分配給該對象的,并會在沒有對該對象的引用時由瀏覽器收回。JavaScript 的垃圾收集機制本身并沒有問題,但瀏覽器在為 DOM 對象分配和恢復內存的方式上卻有些出入。
Internet Explorer 和 Mozilla Firefox 均使用引用計數來為 DOM 對象處理內存。在引用計數系統,每個所引用的對象都會保留一個計數,以獲悉有多少對象正在引用它。如果計數為零,該對象就會被銷毀,其占用的內存也會返回 給堆。雖然這種解決方案總的來說還算有效,但在循環引用方面卻存在一些盲點。

內存泄露的模式大概有以下幾種:

1.循環引用導致了內存泄漏,JavaScript 對象 obj 擁有到 DOM 對象的引用,表示為 DivElement。而 DOM 對象則有到此 JavaScript 對象的引用,由 expandoProperty 表示。可見,JavaScript 對象和 DOM 對象間就產生了一個循環引用。由于 DOM 對象是通過引用計數管理的,所以兩個對象將都不能銷毀。
obj=document.getElementById(”DivElement”);
document.getElementById(”DivElement”).expandoProperty=obj;
obj.bigString=new Array(1000).join(new Array(2000).join(”XXXXX”));
2.由外部函數調用引起的內存泄漏,通過調用外部函數 myFunction 創建循環引用。同樣,JavaScript 對象和 DOM
對象間的循環引用也會導致內存泄漏。
function myFunction(element)
{
this.elementReference = element;
// This code forms a circular reference here
//by DOM–>JS–>DOM
element.expandoProperty = this;
}
function Leak() {
//This code will leak
new myFunction(document.getElementById(”myDiv”));
}
3.Javascript閉包引起的內存泄漏,閉包功能非常強大,原因是它們使內部函數在外部函數返回時也仍然可以保留對此外部函數的變量的訪問。不幸的是,閉包非常易于隱藏 JavaScript 對象 和 DOM 對象間的循環引用。
function  closureDemoParentFunction(paramA)
{
var a = paramA;
return function closureDemoInnerFunction (paramB)
{
alert( a +” “+ paramB);
};
};
var x = closureDemoParentFunction(”outer x”);
x(”inner x”);

Javascript內存泄漏工具:

1.Drip/sIEve

2. Javascript Leaks Detector

3. Leak Monitor

了解更多請閱讀:
http://www.ibm.com/developerworks/cn/web/wa-memleak/
http://djjchobits.javaeye.com/blog/375465

來源:http://adamlu.com/?p=418

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久久精品久久久久久 | 成人欧美一区二区三区视频不卡 | 一区二区三区精品国产欧美 | 国产精品自拍一区 | 韩国三级一线观看久 | 亚洲一区二区三区四区视频 | 91亚洲国产成人久久精品网址 | 日韩精品一区二区三区中文在线 | 免费黄色福利 | 精品视频在线观看一区二区三区 | 最近最新中文字幕国语片 | 综合五月网 | 国产永久在线 | 亚洲精品综合一区在线 | 欧洲视频一区 | 欧美精品首页 | 欧美一级黄色片视频 | 久久精品老司机 | 中文字幕在线播 | 亚洲经典一区 | 2022精品福利在线小视频 | 偷拍videosex| 激情五月开心婷婷 | 伊人亚洲影院 | 精品伊人久久久 | 爱爱久久 | 在线观看中文字幕国产 | 精品视频在线看 | 娇小老少配xxxxx性视频 | 国产a v高清一区二区三区 | aa级国产女人毛片好多水 | 午夜免费啪视频观看网站 | 91亚洲国产成人精品性色 | 久久综合久久久久 | 波多野结衣不卡 | 久久亚洲精品成人 | 久久天天躁狠狠躁夜夜2020一 | 国产精品成人一区二区三区 | 国产成人黄网址在线视频 | 亚洲欧美一级夜夜爽w | 久久久国产成人精品 |