• JavaScript垃圾收集


    JavaScript具有自动收集垃圾的机制,也就是说执行环境会负责管理代码执行过程中的内存。JavaScript的内存分配以及内存的回收都是自动。垃圾回收机制:找到不再使用的变量,然后释放其占用的内存。

    垃圾回收器会按照固定的时间间隔执行这一操作。

    局部变量的生命周期,局部变量只在函数执行过程中存在,会为局部变量在栈(堆)内存上分配相应的空间,以便存储值。在函数中使用这些变量,直至函数执行结束。此时,局部变量就没有存在的必要了,可以释放他们的内存。在这种情况下,很容易判断变量是否还有存在的必要;但不是所有情况都很容易判断变量的存在。垃圾回收器会跟踪变量的使用情况,对于不再使用的变量将进行标记,以备将来回收。

    标记清除

    标记清除是垃圾回收器常用的策略,当变量进入环境时,就将这个变量标记为“进入环境”。从逻辑上将,不能释放被标记为“进入环境”的变量,因为执行流进入到环境,就可能会使用到这些变量。当执行流离开环境,则将变量标记为“离开环境”。

    垃圾回收器在运行的时候会给存储在内存中的所有变量加上标记,然后去掉环境中的变量以及被环境中变量引用的变量的标记。再被加上标记的变量将被视为准备删除的变量。最好垃圾回收器完成内存清除工作,销毁带标记的值并回收内存空间。

    垃圾回收器是周期性运行的,如果为变量分配的大量内存空间,那么内存的回收工作了也是相当大。

     内存限制问题不仅会影响变量的内存分配,同时还会影响调用栈以及在一个线程中能够同时执行的语句数量。因为,确保占用最少的内存,可以页面获得更好的性能。优化内存的方式,就是只保存必要的数据。数据不在使用的话,手动置为null,适用于大部分的全局变量。

  • 相关阅读:
    Android模拟器访问本地的localhost失败及解决方案
    CSS3 @font-face使用实例
    Web字体库下载及转换工具
    Web中常用字体介绍(转)
    CSS3 @font-face详细用法(转)
    HTML5 Canvas Text文本居中实例
    HTML5 Canvas Text实例1
    Html5 Canvas Text
    Wpf Hyperlink超链接控件使用
    MVC使用Exception过滤器自定义处理Action的的异常
  • 原文地址:https://www.cnblogs.com/ggz19/p/8166382.html
Copyright © 2020-2023  润新知