js垃圾回收机制理解
2024-09-02 01:09:36
原理
找到不再被使用的变量,然后释放其占用的内存,但这个过程不是时时的,因为其开销比较大,
所以垃圾回收器会按照固定时间间隔周期性的执行
回收方式
a.标记清除
当变量进入环境时,将这个变量标记为“进入环境”;当变量离开环境时,则将其标记为“离开环境”。
标记“离开环境”的就回收内存
b.引入计数(低级浏览器)
当变量声明,第一次赋值时记为1,然后当这个变量值改变时,记录为0,将计数为0的回收
内存泄露
a.意外的全局变量引起的内存泄露
原因: 全局变量不会被回收
解决:使用严格模式避免
b.闭包引起的
原因: 活动对象被引用,使闭包内的变量不会被释放
解决: 将活动对象赋值为null
c.被清理的DOM元素的引用
原因: 虽然DOM被删掉了,但对象中还存在对DOM的引用
解决: 将对象赋值为null
d.被遗忘的定时器或回调
原因: 定时器内部实现闭包,回调也是闭包
解决: 清理定时器clearInterval、null
最新文章
- 学习EF之贪婪加载和延迟加载(1)
- zabbix3.2安装graphtree3.0.4
- MINA经典入门例子----Time Server
- PHP 优化详解
- python 知识 rstrip,strip,lstrip
- Java中的异常处理机制的简单原理和应用
- 心愿:做一个精简版MFC
- BestCoder Round #49
- NPOI.dll 用法。单元格,样式,字体,颜色,行高,宽度。读写excel
- 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载
- Python里如何实现C中switch...case的功能
- java验证控制的方法
- MySQL IO线程及相关参数调优
- Sqoop介绍
- [POI2006]ORK-Ploughing
- Flash硬件原理
- gcc4.9.1新特性
- BFC的个人理解
- ConcurrentHashMap 分析
- shizhong
热门文章
- 【LeetCode OJ 34】Search for a Range
- HDU 4585 Shaolin(STL map)
- 又见关系并查集 以POJ 1182 食物链为例
- POJ 2516 Minimum Cost (最小费用最大流)
- 转发真阿当老师的一片文章 受益匪浅 (出处:http://cly84920.blog.163.com/blog/static/24750013320158203575958/)
- Build.VERSION.SDK_INT >;= Build.VERSION_CODES.GINGERBREAD
- angularjs 自定义服务
- 41.AngularJS 服务(Service)
- [P3097] [USACO13DEC] [BZOJ4094] 最优挤奶Optimal Milking 解题报告(线段树+DP)
- kotlin官方文档-1.0入门