美文网首页
垃圾回收&内存溢出&内存泄漏

垃圾回收&内存溢出&内存泄漏

作者: fb941c99409d | 来源:发表于2019-02-20 15:16 被阅读0次
    垃圾回收 ( GC )
    垃圾对象 - 当一个对象没有任何的变量或属性对它进行引用,此时我们将永远无法操作该对象,
    这种对象就是一个垃圾,这种对象过多会占用大量的内存空间,导致程序运行变慢,
    
    * 在JS中拥有自动的垃圾回收机制,会自动将这些垃圾对象从内存中销毁,
    
    * 我们不需要也不能进行垃圾回收的操作
    
    * 我们需要做的只是要将不再使用的对象设置null即可
    
    obj = null 
    
    
    1. 内存溢出
      * 一种程序运行出现的错误
      * 当程序运行需要的内存超过了剩余的内存时, 就出抛出内存溢出的错误
    2. 内存泄露
      * 占用的内存没有及时释放
      * 内存泄露积累多了就容易导致内存溢出
      * 常见的内存泄露:
        * 意外的全局变量
        * 没有及时清理的计时器或回调函数
        * 闭包
    // 1. 内存溢出
      var obj = {}
      for (var i = 0; i < 10000; i++) {
        obj[i] = new Array(10000000)
        console.log('-----')
      }
    
      // 2. 内存泄露
        // 意外的全局变量
      function fn() {
        a = new Array(10000000)
        console.log(a)
      }
      fn()
    
       // 没有及时清理的计时器或回调函数
      var intervalId = setInterval(function () { //启动循环定时器后不清理
        console.log('----')
      }, 1000)
    
      // clearInterval(intervalId)
    
        // 闭包
      function fn1() {
        var a = 4
        function fn2() {
          console.log(++a)
        }
        return fn2
      }
      var f = fn1()
      f()
    
      // f = null
    

    相关文章

      网友评论

          本文标题:垃圾回收&内存溢出&内存泄漏

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