V8引擎回收机制、 内存泄露
2024-10-07 10:18:09
一、垃圾回收:将内存不在使用的数据进行清理,释放内存空间
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元素被删除了,内存中的引用未被删除
最新文章
- phabricator-zh_CN汉化包
- apk 打包方式
- oslo.messaging 1.8.0 bug fix and blueprint
- L009-oldboy-mysql-dba-lesson09
- linux命令useradd添加用户详解
- 鸟哥的Linux私房菜学习笔记(1)
- jquery中eq和get的区别与使用方法
- Spring系列
- 子窗口url调整导致父窗口刷新
- WEB前端性能优化之一——网页级优化
- 老李分享:Android性能优化之内存泄漏3
- Python的内置函数open()的注意事项
- tcp链接断开的探测
- 聊聊数据库~2.SQL环境篇
- 基于Vue element-ui实现支持多级纵向动态表头的仿表格布局
- Kubernetes持久化存储2——探究实验
- 线程属性 pthread_attr_t
- C# 获取 存储过程 返回值
- ajax登陆页面
- JavaEE笔记(十二)
热门文章
- asp.net上传超大文件
- 开始玩矩阵了!先来一道入门题![SDOI2008]递归数列
- codevs 1160 蛇形矩阵x
- 【bzoj2882】工艺
- Parse error: syntax error, unexpected 'class' (T_CLASS)
- optistruct如何将多个约束置于一个约束集合中
- 源码编译安装Apache/2.4.37-------踩了无数坑,重装了十几次服务器才会的,不容易啊!
- ORACLE Physical Standby DG 之switch over
- qbzt day2 下午
- python curl_get-pip.py Installing with get-pip.py