当前位置:网站首页>内存泄露与内存溢出
内存泄露与内存溢出
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;//让内部函数成为垃圾对象,回收闭包,及时释放
边栏推荐
- flaks framework learning: adding variables to the URL
- 04-开发自己的npm包及发布流程详细讲解
- 标准模板题:采药
- 【网站小白】Hibernate插入数据成功,不报错,但是数据库中没有值
- CSDN 社区内容创作规范
- npm install 时报 npm ERR Cannot read properties of null (reading ‘pickAlgorithm‘)
- Summary: Cross Validation
- Flask framework to study: the debug and configuration items
- EOF, feof function, ferror function in C language
- LeetCode43. String multiplication (this method can be used to multiply large numbers)
猜你喜欢
随机推荐
C语言结构体详解 (2) 结构体内存对齐,默认对齐数
信息学奥赛
C语言——文件操作(2)文件的读写操作
LeetCode43.字符串相乘 (大数相乘可用此方法)
flaks框架学习:在 URL 中添加变量
task03 Pytorch模型定义
手推卷积神经网络参数(卷积核)求导
看完这篇博客之后,含着泪学会了TCP/IP
C语言文件操作——数据文件类型、文件判断、文件缓冲区详解
家·谱——人脸识别家谱系统
【背包】采药题解
ClionIDE compiles by specifying the compiler
Some writing skills commonly used in Markdown
CSDN 社区内容创作规范
Redis - Data Types (Basic Instructions, String, List, Set, Hash, ZSet, BitMaps, HyperLogLog, GeoSpatial) / Publish and Subscribe
C语言之EOF、feof函数、ferror函数
task04 Pytorch进阶训练技巧
C - file operations fseek () function, ftell, rewind, rounding
开炮,开炮
Chapter 13 Class Inheritance-1