垃圾回收(GC)

Posted 纸 飞机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了垃圾回收(GC)相关的知识,希望对你有一定的参考价值。

GC会周期性运行以释放那些不需要的内存,否则,javascript的解释器将会耗尽全部系统内存而导致系统崩溃。

标记清除法

这是javascript中最常用的垃圾回收方式。 当变量进入执行环境时,就标记这个变量 为“进入环境”。从逻辑上讲,永远不能 释放进入环境的变量所占用的内存,因为 只要执行流进入相应的环境,就可能会用 到他们。当变量离开环境时,则将其标记 为“离开环境”。

垃圾收集器在运行的时候会给存储在内存 中的所有变量都加上标记。然后,它会去 掉环境中的变量以及被环境中的变量引用 的标记。而在此之后再被加上标记的变量 将被视为准备删除的变量,原因是环境中 的 变 量 已 经 无 法 访 问 到 这 些 变 量 了 。 最 后。垃圾收集器完成内存清除工作,销毁 那些带标记的值,并回收他们所占用的内 存空间。

引用计数法

另一种不太常见的垃圾回收策略是引用计 数。引用计数的含义是跟踪记录每个值被 引用的次数。当声明了一个变量并将一个 引用类型赋值给该变量时,则这个值的引 用次数就是1。相反,如果包含对这个值引 用的变量又取得了另外一个值,则这个值 的引用次数就减1。当这个引用次数变成0 时,则说明没有办法再访问这个值了恩口 而就可以将其所占的内存空间给收回 这样,垃圾收集器下次再运行时,它就会 释放那些引用次数为0的值所占的内存。

以上是关于垃圾回收(GC)的主要内容,如果未能解决你的问题,请参考以下文章

GC垃圾回收(3)- 三色标记算法

jvm基础--GC垃圾回收机制

从垃圾回收GCDetails看JVM GC原理

java中是怎样进行垃圾回收的?

6.GC垃圾回收算法和垃圾收集器的关系

「JVM基础」——垃圾回收基础(GC相关)