js的内存管理

  1. 内存生命周期
    1. 分配内存:声明变量、函数、对象时候,系统自动分配内存;
    2. 使用内存:读写内存
    3. 释放内存:使用完毕,由垃圾回收机制自动回收不再使用的内存;
      1.   
      2. 引用计数垃圾回收1.0;
      3.   
             
        1. a=b;b=a一直不会被清理,造成内存泄漏;
        2.   
          
      4. 标记清楚算法2.0;
      5.   
             
        1. 所有变量加标记;
        2.    
        3. 根部触发将触及到的对象的标记清除;
        4.    
        5. 还存在标记的变量被视为准备删除;
        6.    
        7. 最后垃圾回收器清楚销毁标记的值回收他们的内存;
        8.    
                
          1. {a=b  b=a}从全局对象出发无法再获取他们的引用,因此会被回收;
          2.    
            
  2. 内存泄漏:
    1. 程序运行需要内存,对于持续运行的服务进程,必须及时释放不再用到内存,否则内存将预占越高。轻者影响系统性能,重则导致进程崩溃。
                  内存泄漏:就是由于疏忽或错误造成程序未能及时释放内存,造成的内存的浪费。
      1.   
      2. 通过谷歌F12
    1. 常见内存泄漏案例
      1.   
      2. 意外全局变量:
      3.   
      4. 被遗忘的定时器;
      5.   
      6. 闭包;
      7.   
      8. dom引用;
      9.   
      10. 死循环
posted @ 2019-07-11 15:04  Y.anCy  阅读(102)  评论(0编辑  收藏  举报