zoukankan      html  css  js  c++  java
  • JavaScript性能优化之内存管理及垃圾回收

    一.JavaScript性能优化之内存管理

    首先要了解几个概念:

    内存:由可读写单元组成,表示一片可操作空间

    管理:人为的去操作一片空间的申请,使用和释放

    内存管理:开发者主动申请空间,使用空间,释放空间

    内存管理流程 申请-使用-释放

    javaScript没有相应的api去操作空间,所以我们在JavaScript执行引擎遇到变量定义语句的时候自动分配给我们一个相应的空间,流

    程如下图所示:

    二.JavaScript之垃圾回收

    javaScript中的内存管理是自动的,在创建对象,数组或者函数 分配相应的内存空间,后续代码在执行的过程中,如果通过一些引用关系无法

    再找到对象的时候称之为垃圾,如果说因为一些语法错误,或者一些结构性的错误致使对象无法从根上访问到时,也称为垃圾。javaScript

    搜索引擎就会出来工作,把所占据的空间进行回收,这个过程就叫做javaScript垃圾回收,在此我们还必须了解一个概念可达对象

    JavaScript中的可达对象:可以访问到的对象就是可达对象(引用,作用域链),可达的标准一定从根上出发找的到, JavaScript中的根就可以

    理解为是全局变量对象。

    JavaScript的引用和可达

    从全局的根出发,可以找到一个可达的对象obj,通过函数调用指向了O1和O2,

    如下图红线部分delete掉O1,再delete掉obj2.prev,则红线框住的部分就是浏览器垃圾回收部分

    ---感谢阅读,o(* ̄︶ ̄*)o开心每一天!
  • 相关阅读:
    http连接池
    消息队列场景简介
    项目中使用到的设计模式
    dubbo 问题整理
    dubbo Filter
    Elastic-Job分布式作业框架
    别被平凡淹没
    spring中@value注解需要注意
    穷人的真相:从7点忙到23点的上班者,跳出穷人圈子唯一可能是.
    ContextLoaderListener类(spring源码解析)
  • 原文地址:https://www.cnblogs.com/websiteblogs/p/14286034.html
Copyright © 2011-2022 走看看