当前位置 : 主页 > 手机开发 > ROM >

V8引擎回收机制、 内存泄露

来源:互联网 收集:自由互联 发布时间:2021-06-10
一、垃圾回收:将内存不在使用的数据进行清理,释放内存空间 v8将内存分为新生代空间和老生代的空间 新生代空间:用于存活较短的对象 :又分为二个空间:from空间和to空间 :Sca
 一、垃圾回收:将内存不在使用的数据进行清理,释放内存空间   v8将内存分为新生代空间和老生代的空间   新生代空间:用于存活较短的对象   :又分为二个空间:from空间和to空间   :Scavenge GC算法:当 from 空间被占满时,启动 GC 算法    存活的对象从 from space 转移到 to space    清空from space    from space和to space交互    完成一次新生代GC   老生带空间:用于存活时间较长的对象   从新生代空间 转移到 老生代空间条件      经历过一次以上的Scavenge GC的对象      当to space空间体积超过了25%   标记清除算法: 标记存活对象,未被标记会被释放    增量标记:  小模块标记,在代码执行间隙执行,GC会影响性能    并发标记(最新技术): 不阻塞js执行   压缩算法:将内存中清除后导致的碎片化对象往内存堆的一端移动,解决内存的碎片化   二、 内存泄露   1,意外全部变量:无法被回收   2,定时器:无法被正确的关闭,导致所引用变量无法被释放   3,事件监听,没有正确的被销毁,   4,闭包,会导致父级的变量无法被释放    5,dom的引用,dom元素被删除了,内存中的引用未被删除
网友评论