美文网首页
内存泄漏问题与垃圾回收机制

内存泄漏问题与垃圾回收机制

作者: zhangjianli | 来源:发表于2017-05-03 19:09 被阅读0次
    内存泄漏:一块被分配的内存既不能使用又不能被释放

内存泄漏的几种情况
1.页面中元素被移除或替换时,元素绑定的时间仍然存在

<div id="div1">
    <input type="button" name="" value="clickMe" id="btn1">
</div>
<script type="text/javascript">
    var oButton = document.getElementById('btn1');
    oButton.onclick=function(){
        document.getElementById('div1').innerHTML="processing....";
    };
</script>

解决:在onclick事件中将oButton.onclick=null;手动释放
2.两个DOM节点或ActiveX对象相互引用,在IE中垃圾回收系统不会发现他们之间循环关系与系统中其他对象是隔离的并释放他们,最终他们将被保留在内存中,直到浏览器关闭
3.闭包也会引起内存泄漏
解决在确定某个变量不会再次被引用。手动释放其内存,即将此变量设置为null

垃圾回收机制

js中垃圾回收机制有两种:
1.标记清除:最常用!
垃圾收集器会在运行的时候给存储在内存的所有变量加上一个标记,然后会去掉环境中的变量以及环境中被引用的变量,在此之后再被加上标记的变量就是为准备删除的变量
2.引用计数
跟踪记录每一个个值的被引用次数,当一个值引用次数为0时,回收
但是这种方法有一个很严重的问题!!循环引用
循环引用就是对象A中包含一个指向对象B的指针,而对象B中又包含一个指向A的指针,他们的引用次数永远不会是0

相关文章

  • 对 Java 内存的一些理解-[Android_YangKe]

    Java 垃圾回收机制优点 Java 内存模型 什么是内存抖动 什么是内存泄漏 垃圾回收机制常见算法 Java 垃...

  • 前端面试-JS垃圾回收机制

    什么是垃圾回收机制? JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在...

  • 垃圾回收机制

    概述 JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃圾回收机制...

  • JS 里垃圾回收机制是什么,常用的是哪种,怎么处理的?

    JS 的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃圾回收机制就是...

  • Android 优化

    Android 内存优化内存溢出 , 内存泄漏 , 内存泄漏过多就导致内存溢出 Android 系统垃圾回收机制内...

  • android内存泄漏定位与优化

    android内存泄漏定位与优化(java篇) 内存泄漏:我们的应用内存不在GC可以掌控之内 1 垃圾回收机制(G...

  • Android性能优化之内存泄漏

    内存泄漏:内存单元使用完成后未释放,未回收。理解强弱引用和gc垃圾回收机制后,会更好的理解内存泄漏问题。 在目前的...

  • Android——内存泄漏

    性能优化----内存泄漏优化 一:什么是内存泄漏:内存不再GC的掌控之内了 了解几个问题(1) 垃圾回收机制 GC...

  • JS的内存泄漏垃圾回收

    一.垃圾回收 JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃...

  • 2017.11.09正则表达式

    垃圾回收 垃圾回收机制:内存泄漏 垃圾回收/生命周期 正则表达式(规则表达式) Regular Expressio...

网友评论

      本文标题:内存泄漏问题与垃圾回收机制

      本文链接:https://www.haomeiwen.com/subject/nikltxtx.html