当前位置: 首页 > backend >正文

前端八股 7

垃圾回收机制

系统周期性地找出暂时不再使用的变量的机制,释放其内存的机制

方法:古老引用计数法

创建一张引用表记录各种资源被引用的次数,当引用次数为0就回收

问题:当有两个对象互相引用时会造成内存泄漏

比如:

function A(){
B()
}
function B(){
A()

这样函数A和函数B互相引用,A和B的引用数永远大于等于1,内存不会被释放,内存泄漏

标记清除法

当变量进入执行环境时,标记该变量为“进入环境”,当变量离开环境时,标记为“离开环境”

常见内存泄漏情况

1.函数中直接定义全局变量

function foo(arg) {bar = "this is a hidden global variable";
}

2.定时器函数
var someResource = getData();
setInterval(function() {
var node = document.getElementById(‘Node’);
if(node) {
// 处理 node 和 someResource
node.innerHTML = JSON.stringify(someResource));
}
}, 1000);

如果清除node指向的DOM元素,内部函数仍旧使用someResource变量造成内存泄漏

http://www.xdnf.cn/news/3428.html

相关文章:

  • 如何让Steam下载速度解除封印?!
  • 渗透测试中的那些“水洞”:分析与防御
  • 【Game】Powerful——Abandoned Ruins(9)
  • node.js模块化步骤(各标准区别)CommonJS规范、AMD规范、UMD规范、ES Modules (ESM)
  • qemu(4) -- qemu-system-arm使用
  • 三生原理的离散生成逻辑如何与复分析结合?
  • 2025大模型微调视频课程全套(附下载)
  • WPF之Image控件详解
  • Sentry 异常捕获
  • 第 2.3 节: 基于 Python 的关节空间与任务空间控制
  • AUTOSAR图解==>AUTOSAR_RS_TimingExtensions
  • Rerank详解
  • C++初阶-string类3
  • 补题 (Multiples of 5)
  • PostgreSQL运算符
  • 【JSON vs Python字典】核心区别与互操作指南
  • RPG_5.角色动画
  • C语言-函数的递归和迭代
  • Spring Boot 使用 WebMagic 爬虫框架入门
  • 腾讯云BI VS quickbi 企业选型(从企业实际功能使用和费用对比)
  • 在项目中如何对Map List等对象序列化及反序列化
  • 雅马哈SMT贴片机高效精密制造解析
  • 【数据结构】线性表--顺序表
  • 59常用控件_QComboBox的使用
  • 【C语言练习】015. 声明和初始化指针
  • 【Hive入门】Hive性能调优之资源配置:深入解析执行引擎参数调优
  • 欧拉计划 Project Euler62(立方数重排)题解
  • Allegro23.1新功能之如何加粗打印线宽操作指导
  • 跨域 iframe 内剪切板 Clipboard_API 报错
  • 网络安全零基础培训 L1-9 PHP连接MySQL数据库