javascript的垃圾回收机制

作者: Beauty_Beast | 来源:发表于2018-06-26 21:47 被阅读10次

申明:本文是js系列笔记之一,有不正确的地方请尽管指出,大家相互学习,共同进步;

js的 垃圾回收机制,常用的有两种方法:标记清除,引用计数;

标记清除:当变量进入环境时标记为“进入环境”,当变量离开环境时标记为“离开环境”;然后垃圾收集器会定时去清除,销毁被标记为离开环境的变量,释放其内存;

引用计数:

跟踪记录每一个引用的值被引用的次数。即变量每被引用一次,引用计数加1,相反当包含这个值的 引用变量又取得了另外一个值(另外一个值赋给了引用这个值的变量),引用计数减1;当引用计数变为0时,则说明没有值引用这个值了,此时(你已经猜到了)这个变量就可以被垃圾回收机制回收了,(因为没有在被引用了);

内存泄漏:

最常见的循环引用

相互引用计数永远不可能为0,所以两个变量内存永远都不会被释放,如果程序执行多次,这样的变量越来越多;浏览器越来越卡,终究会奔溃;

内存管理:

js的垃圾收集机制,让我们开发人员无需担心内存管理的问题,但是内存终究有限;所以建议:在开发中,确保一些内存占用非常大的变量不在使用时,我们可以主动:变量 = null;当然,你不这样做也是可以的,只是会对内存造成浪费,对浏览器的性能造成一定的影响;

性能问题:

ie6及之前在运行垃圾收集机制时会以以下几个临界值作为条件:达256个变量,4096个对象或者数组元素,或者64kb的字符串(JavaScript高级编程),达到任何一个临界值,垃圾收集器就会运行;问题在于:可能某个执行脚本中一直存在那么多的变量,那么垃圾收器会频繁的运行,这对性能本来就是一种不良行为,导致性能问题严重;所以决定一个浏览器性能与其垃圾收集机制息息相关,另外需要注意,垃圾收集机制是周期性运行的;

相关文章

  • 垃圾回收机制

    垃圾回收机制—GC Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就...

  • JS 的垃圾回收机制与内存管理

    垃圾回收机制 Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,...

  • JavaScript中的垃圾收集

    JavaScript具有自动垃圾回收机制,垃圾回收机制会按照固定的时间间隔周期性地执行这一操作,垃圾回收机制必须跟...

  • JavaScript垃圾回收机制

    什么是垃圾回收机制? 和java,c#一样,javascript也有垃圾回收的机制,比如说c++和c就没有垃圾回收...

  • 2018-10-13

    浅谈浏览器的垃圾回收机制和内存泄露 JavaScript使用垃圾回收机制来自动管理内存。 JS的回收机制分两种:1...

  • JavaScript中的垃圾回收

    垃圾回收概述 JavaScript具有垃圾自动回收机制 原理是:找出不再使用的变量,释放其内存空间,为此垃圾回收器...

  • JS_垃圾回收机制

    JavaScirpt垃圾回收机制 JavaScript具有自动垃圾回收机制,也就是说,执行环境会负责管理代码执行过...

  • javascript中的内存泄漏

    垃圾回收机制 JavaScript具有自动垃圾回收机制,来判断哪些变量不再需要,释放他所占的内存。 1. 变量的生...

  • JavaScript的垃圾回收机制

    JavaScript采用的垃圾回收机制是标记扫描算法(Mark-and-sweep algorithm),它会回收...

  • javascript垃圾回收与内存泄漏

    垃圾回收机制 自动垃圾收集机制 javascript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程...

网友评论

    本文标题:javascript的垃圾回收机制

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