美文网首页
6.内存泄漏和垃圾回收

6.内存泄漏和垃圾回收

作者: 原来哥哥是万家灯火 | 来源:发表于2020-07-03 12:54 被阅读0次

内存泄漏是指内存被无效的数据占用,无法被释放。(就像漏掉了一样,越用越少)
垃圾回收有多种算法,浏览器中常见的有两种:引用计数算法和标记清除算法。

1.引用计数,netscape navigator3.0最先开始使用。这是最简单、最原始的一种方式。

当一个引用类型,被赋值给一个变量时,其引用次数就加1,该值再被赋值给另外一个变量时,其值再加1。如果包含这个引用的值又取得了其他值,那么其引用次数-1。

这几乎是高程上的原话,意思是只针对引用类型,也就是heap上的数据。假设有个引用类型,其指针(就是首字节的地址)是0x0001,那么有多少个变量的值等于这个指针,它的引用次数就是多少。引擎会在这个引用类型上加个count字段,表示它被引用的次数。

当被引用次数为0时,等到下次垃圾回收的时候,该引用类型占用的内存空间,就会被回收。

引用计数的缺点是,循环引用时,会出现引用次数无法变成0,导致内存泄漏。IE中BOM和DOM是使用c++以COM(组件对象模型)方式实现的,COM的gc机制是引用计数,所以可能出现内存泄漏。

2.标记清除算法
这个不懂,只知道会对数据进行可达性分析,不可达的引用类型会被清除掉。

相关文章

  • 记一次面试

    内存泄漏和内存溢出 概念 内存泄漏:垃圾回收器无法回收原本应该被回收的对象,这个对象就引发了内存泄露。 内存溢出:...

  • 性能优化 - 相关概念

    1. 内存泄漏和内存抖动 内存泄漏:GC,垃圾回收器,在内存吃紧时候回收内存时,无法回收某一块不再使用的区域...

  • 6.内存泄漏和垃圾回收

    内存泄漏是指内存被无效的数据占用,无法被释放。(就像漏掉了一样,越用越少)垃圾回收有多种算法,浏览器中常见的有两种...

  • android 内存泄漏(多文章摘录)

    内存泄漏 gc没有办法回收activity的内存。 垃圾回收(GC) 垃圾回收或GC(Garbage Collec...

  • Android 优化

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

  • JS的内存泄漏垃圾回收

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

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

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

  • 垃圾回收机制

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

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

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

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

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

网友评论

      本文标题:6.内存泄漏和垃圾回收

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