当前位置:网站首页>内存泄露与内存溢出
内存泄露与内存溢出
2022-08-11 05:17:00 【前端小马】
内存溢出:
当程序运行需要的内存超过了剩余的内存时, 就出抛出内存溢出的错误
内存泄漏:
1. 占用的内存没有及时释放
2. 内存泄露积累多了就容易导致内存溢出
3. 意外的全局变量:
JavaScript 处理未定义变量的方式比较宽松:未定义的变量会在全局对象创建一个新变量。在浏览器中,全局对象是 window 。
function fun(arg) {
a=1
}
//实际上是
function fun(arg) {
window.a=1
} 另一种意外的全局变量可能由 this 创建
function fun() {
this.a = "aaa";
}
// fun 调用自己,this 指向了全局对象(window)
fun(); 3. 没有及时清理的计时器或回调函数
setInterval(function(){
console.log("...")// 启动定时器不清理
},100)
var time=setInterval(function(){
console.log("...")
},100)
clearInterval(time)//及时清理4.闭包没有释放
function fn1() {
var arr = new Array(999999);
function fn2() {
console.log(arr.length);
}
return fn2;
}
var f = fn1(); //因函数fn2被f引用,所以fn2不会被回收
f();
f = null;//让内部函数成为垃圾对象,回收闭包,及时释放边栏推荐
- [C language from elementary to advanced] Part 1 Initial C language (1)
- 2021研究生数学建模D题,BP神经网络和卷积神经网络解题代码(基于pytorch)
- Chapter 4 Composite Types-1
- 【网站小白】Hibernate插入数据成功,不报错,但是数据库中没有值
- (3) Construction of a real-time performance monitoring platform (Grafana+Prometheus+Node_explorer+Jmeter)
- 09-ES6语法:变量、箭头函数、类语法、静态属性及非静态属性
- 开炮,开炮
- 简单做份西红柿炒蛋778
- Blender 初教程
- Randomly generate uuid using rand function
猜你喜欢
随机推荐
吃瓜教程task02 第3章 线性模型
C语言——文件操作函数 fseek、ftell、rewind详解
Redis - the solution to the failure of connecting to the redis server in linux using jedis
[转载]Verilog testbench总结
C语言——程序的编译与执行、宏定义详解
第4章 复合类型-1
第6章 分支语句和逻辑运算符
leetcode21. Merge two ordered linked lists
Some Error in Visual Studio solution
How to open archives in administrator mode
2021研究生数学建模D题,BP神经网络和卷积神经网络解题代码(基于pytorch)
【网站小白】mySQL数据库异常断开
(3) How Redis performs stress testing
全国青少年信息学奥林匹克联赛大纲
c 指针学习(1)
【记录】innerHeight?clientHeight?offsetHeight?scrollTop?screenTop?.....一堆高度傻傻分不清
Win下安装不同版本的MinGW(g++/gcc)以及对应clion编辑器的配置
字符与字符串
task02 fashion-mnist分类实战
leetcode21.合并两个有序链表









