JS的内存泄漏
来源:互联网 发布:大数据时代杂志 编辑:程序博客网 时间:2024/06/07 06:36
学习过c++或者JAVA的朋友都知道,程序的内存空间存在着全局作用域,局部作用域,堆栈区,临时作用域等。如果我们在内存中申请一个操作空间,但是在执行完毕时却不主动把它delete,很可能就会造成内存的浪费,严重影响程序优化,如果是较大的程序,甚至会造成致命的后果。js虽然是一个弱类型的语言,但是仍然存在高级语言的通病,我们把他叫做js的内存泄漏。
什么叫做内存的泄露,我们用点官方些的语言来说就是:
任何对象在我们不再拥有或者需要他的时候仍然存在,称这种现象为内存的泄露。
内存泄漏有两个特点:
1.这些对象是可达的,即如果我们把整个程序当做一个无向图,存在通路与这个对象连接(说白就是,我们想要调用这个对象,还是可以调用的)
2.这些对象是无用的,或者说,我们根本已经不必再使用它了。
那么那些操作会引发内存泄露呢?我把常见的的例子写下来:
1.settimeout()的第一个参数如果是字符串而非函数的话,会引发内存泄漏,例如:
function hello(){ alert("hello");}setTimeout("hello()",1000);但是这样写却不会引发内存泄漏:
setTimeout(function(){ alert("hello");},1000);这是为什么呢?嘻嘻,欢迎各位同学留言踊跃讨论。
2.闭包。大家都知道闭包会保存一个变量的最终的值,而且不主动设置为null,这个闭包机就会继续存在。这个就不举例子了,不懂的同学自己回去翻书。
3.控制台日志。大家知道,日志会监听程序运行的全部周期,这个更不必说了。
4.循环,两个对象相互引用并且都保留下来时,就会产生一个循环。
阅读全文
0 0
- JS的内存泄漏
- JS中闭包引起内存泄漏的解析
- UIWebView调用JS出现的内存泄漏
- js内存泄漏的几种情况
- js内存泄漏
- JS内存泄漏
- js 内存泄漏
- js内存泄漏
- 关于JS内存泄漏
- JS内存泄漏排查
- js内存泄漏问题
- JS内存泄漏笔记
- js内存泄漏
- js内存泄漏
- js内存泄漏详解
- js 内存泄漏及解决方案
- Js内存泄漏及解决方案
- Node.js内存泄漏分析
- aliyun阿里云Maven仓库地址——加速你的maven构建
- mac ntfs读写插件的双十一活动
- 14.(3)Struts2_值栈
- java多线程中Locks和ynchronized的区别
- [数学] Codechef September Challenge 2017 Weasel does Xor on Tree
- JS的内存泄漏
- LintCode 搜索区间
- leetcode 316. Remove Duplicate Letters(Hard)
- 面试常客,单例模式实现解析
- XCode的下载路径
- View的getWidth/getHeight与getMeasuredWidth/getMeasuredHeight的区别
- drawable+valuse+valuse-w820dp
- AnjularJs增查、排序
- hadoop 伪分布式安装