美文网首页
js内存管理

js内存管理

作者: Viewwei | 来源:发表于2020-10-23 19:41 被阅读0次

1.内存管理的宗旨就是避免大量JavaScript的网页耗尽系统内存导致系统奔溃。因此再优化内存的时候,要保证执行代码中只保存必要的数据,如果数据不需要则设置为null
2.通过const和let提升性能
3.隐藏类和删除操作:再JavaScript中应该践行“先创建再补充”式的动态属性赋值,并在函数中一次性声明所以的属性

function Article () {
  this.title = "view..................."
}
let a1  = new Articel()
let a2 = new Article()

a1和a2实例共享相同的隐藏类,因为他们两个实例共享同一个构造函数和原型,假设之后又添加下面这段代码

a2.author = 'Jake'

根据上述原则,需要把function改成下面这样

function Article (options) {
  this.title = "view..................."
this.author = options
}
let a1  = new Articel()
let a2 = new Article('Jake')

3 内存泄漏
JavaScript中的内存泄露大部分是由于不合理的引用导致的如下面例子
1.没有修饰的变量

function() {
  name = "view"
}

解释器会把变量name当作widow的属性来创建(相当于widow.name = "view"),只要window对象存在,那么name就不会被清理掉
2.定时器导致内存泄漏
定时器的回调通过闭包引入外部变量道中内存泄漏

let name = "view"
setInterval (() => {
  console.log('name:' +name)
},0)

只要定时器一直在运行,那么name就一直被调用,那么name就不能被释放调
3.闭包引起内存泄漏
闭包引起内存泄漏只要是因为变量被引用,无法释放掉,如下所示

let outer = function () {
  let name = " view"
return function () {
  return name
}
}

调用outer()会导致name的内存泄漏,以上代码就是创建一个内部闭包,只要返回的函数不清理name,因为闭包一直存在,那么name就不能被清理掉

相关文章

  • Node.js内存管理机制分享

    Node.js内存管理Node.js的一些选项GC研究例子生产环境的设置 1. Node.js如何管理内存 [解惑...

  • js内存管理

    导读:js是高级语言,有自带的垃圾回收器,一般认为js开发可以不用关心内存管理。然而这是错误的。 js垃圾回收算法...

  • JS内存管理

    v8作为javascirpt引擎,对变量的存储主要有两种位置:栈存储和堆存储 栈内存:存储 基本类型的变量:如Nu...

  • js内存管理

    1.内存管理的宗旨就是避免大量JavaScript的网页耗尽系统内存导致系统奔溃。因此再优化内存的时候,要保证执行...

  • js 执行上下文,作用域,变量内存管理

    js 执行上下文,作用域,变量内存管理 JS中变量的定义在内存中包括三个部分:* 变量标示(变量标示存储在内存的栈...

  • 2019-05-30

    1. V8内存管理和相关问题 Node.js基于V8引擎,其内存管理就是V8的内存管理。 V8内置了自动垃圾回收(...

  • js 内存管理机制

    什么是内存管理 所谓内存管理,是 js 从创建变量到垃圾回收的一个过程。 它的生命周期 分配你所需要的内存(变量声...

  • js的内存管理机制

    什么是内存管理 所谓内存管理,是 js 从创建变量到垃圾回收的一个过程。 它的生命周期 分配你所需要的内存(变量声...

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

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

  • 浅谈 js 内存管理

    js 内存是由 GC 自动管理的 内存生命周期: 不管什么程序语言,内存生命周期基本是一致的: 分配你所需要的内存...

网友评论

      本文标题:js内存管理

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