首页 > 系统相关 >81.哪些操作会造成内存泄漏

81.哪些操作会造成内存泄漏

时间:2023-07-14 23:12:19浏览次数:46  
标签:闭包 泄漏 变量 引用 81 内存

81. 哪些操作会造成内存泄漏?

相关知识点:

  • 1.意外的全局变量
  • 2.被遗忘的计时器或回调函数
  • 3.脱离 DOM 的引用
  • 4.闭包

回答:

第一种情况是我们由于使用未声明的变量,而意外的创建了一个全局变量,而使这个变量一直留在内存中无法被回收。

第二种情况是我们设置了 setInterval 定时器,而忘记取消它,如果循环函数有对外部变量的引用的话,那么这个变量会被一直留
在内存中,而无法被回收。

第三种情况是我们获取一个 DOM 元素的引用,而后面这个元素被删除,由于我们一直保留了对这个元素的引用,所以它也无法被回
收。

第四种情况是不合理的使用闭包,从而导致某些变量一直被留在内存当中。

详细资料可以参考:
《JavaScript 内存泄漏教程》
《4 类 JavaScript 内存泄漏及如何避免》
《杜绝 js 中四种内存泄漏类型的发生》
《javascript 典型内存泄漏及 chrome 的排查方法》

标签:闭包,泄漏,变量,引用,81,内存
From: https://www.cnblogs.com/zhuoss/p/17555295.html

相关文章

  • 【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块7
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块6
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块5
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块4
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 20081007_人人皆有佛性,那小狗有嗎
    有一天,有位和尚問趙州和尚說:「請問您,小狗狗有沒有佛性呢?」趙州和尚就告訴他:「沒有啊?」和尚很好奇地又問道:「上至諸佛,乃至於小小的螞蟻,都有佛性的啊,為什麼小狗狗沒有呢?」趙州和尚就說:「因為小狗狗有業識的緣故啊。」小狗狗就在旁邊:「汪!汪!」長期以來我們被教導去相信一些......
  • 【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块3
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • c语言的内存泄漏问题
    在今天的动态内存分配的学习中,我遇到了内存泄漏问题,自己开辟的空间,自己找不到了,并且系统也无法使用,通过查找资料得到了比较加深的见解。C语言什么是内存泄漏,怎么避免内存泄漏一、内存溢出内存溢出OOM(outofmemory),......
  • 记一次 .NET 某游戏服务后端 内存暴涨分析
    一:背景1.讲故事前几天有位朋友找到我,说他们公司的后端服务内存暴涨,而且CPU的一个核也被打满,让我帮忙看下怎么回事,一般来说内存暴涨的问题都比较好解决,就让朋友抓一个dump丢过来,接下来我们用WinDbg一探究竟。二:WinDbg分析1.到底是谁在暴涨拿到dump之后,首先要判断是托......
  • 【雕爷学编程】Arduino动手做(138)---64位WS2812点阵屏模块8
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • codeforces-817 D. Imbalanced Array(单调栈)
    题意:求数组中每个连续子序列的的最大值-最小值之和。思路:题意可以理解为加上每一个序列的最大值,减去每一个序列的最小值。每个数都可以作为某一连续子序列的最大值和最小值,所以可以枚举每一个数作为最值的区间,暴力枚举时间复杂度过高,所以利用单调栈找出每个数左边或右边第一个比......