美文网首页
JavaScript的垃圾回收与内存管理

JavaScript的垃圾回收与内存管理

作者: yunshengz | 来源:发表于2018-08-21 11:38 被阅读0次

1.垃圾回收机制

  • js具有自动的垃圾回收机制,执行环境会负责代码执行过程中使用的内存。
  • 其实现原理是找出那些不在继续使用的变量,然后释放起其占用的内存。为此,垃圾回收器会按固定的时间间隔周期性的执行这一操作。
  • 所谓的变量是指局部变量,因为全局变量的生命周期是在页面关闭才会结束。
  • 局部变量只在函数的执行过程中存在,在这个过程中内存会为这个局部变量分配相应的空间,以便于存储他们的值;然后再函数中使用。当函数执行完毕,这些局部变量就没有存在的必要了,因此可以释放他们的内存,以便于将来使用。

2.垃圾回收的方法

  • 标记清除(常用)

其原理是当变量进入环境时,就将这个变量标记为“进入环境”,而当变量离开环境时,则将其标记为“离开环境”。

  • 引用计数(不太常用)

3.垃圾回收的性能问题

垃圾收集器是周期运行的,如果为变量分配的内存很可观,那么回收的工作量也是很大;因此确定垃圾收集的时间间隔是一个很重要的问题

4.管理内存

在js中一般不需要操心内存管理的问题;但是分配给web浏览器的可用内存数量通常比桌面应用程序少。这样做主要是出于安全方面的考虑。目的是防止js的网页耗尽系统内存而导致的系统崩溃。
因此,确保占用最少的内存可以让页面获取最好的性能。
一旦数据不再有用,可以通过将其值设置为null来释放引用,这个叫解除引用

5.内存泄漏是什么

内存泄漏就是应用程序使用过且不再需要的内存,没有及时的释放到可用的内存池中。

6.内存泄漏的常见案例

  • 闭包

闭包会引用包含函数的整个活动对象导致函数内部变量得不到释放。

  • 没有清除掉的定时器
  • 意外的全局变量
  • DOM清空或删除时,绑定的事件没清除

相关文章

  • JavaScript到底怎么回收垃圾的?

    浅谈JavaScript的内存管理与垃圾回收机制。 诸如 C 语言这般的低级语言一般都有低级的内存管理接口,比如 ...

  • 2018-10-13

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

  • JavaScript 性能优化

    垃圾回收 内存管理 JavaScript 没有提供操作内存的 API,一切内存操作都是自动的。 申请 使用 释放 ...

  • Chrome开发者工具之JavaScript内存分析(转)

    尽管JavaScript使用垃圾回收进行自动内存管理,但有效的(effective)内存管理依然很重要。在这篇文章...

  • 9.垃圾收集

    垃圾收集 JavaScript 具有自动垃圾回收机制,内存分配和回收实现自动管理。 函数中局部变量的生命周期 执行...

  • Android性能调优(4) — 内存泄漏与内存抖动

    在上一遍《Android性能调优(3)—内存管理与垃圾回收》我们对Android内存管理与垃圾回收有了一定的认识。...

  • 常见GC算法与V8引擎

    内存管理 垃圾回收与常见GC算法 V8引擎的垃圾回收 Performance工具 代码优化实例 内存管理 为什么要...

  • JavaScript中的垃圾回收和内存泄漏

    JavaScript中的垃圾回收和内存泄漏 摘要: JS内存管理。 作者:浪里行舟 Fundebug经授权转载,版...

  • JavaScript的垃圾回收与内存管理

    1.垃圾回收机制 js具有自动的垃圾回收机制,执行环境会负责代码执行过程中使用的内存。 其实现原理是找出那些不在继...

  • JavaScript的垃圾回收机制

    大纲 1、认识垃圾回收机制2、垃圾回收机制的原理3、垃圾回收机制的标记策略4、垃圾回收机制与内存管理 1、认识垃圾...

网友评论

      本文标题:JavaScript的垃圾回收与内存管理

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