今天上午看了一篇文章,结果一发不可收拾,一直很想了解内存泄露的原理,一大早就让我碰上了,原文如下http://www.aliued.cn/?p=2908;感觉写的不错,至少对于我这个菜鸟来说是长见识了;看过文章后现总结如下:
1. 内存分配主要有几种方式
- 静态分配:就像房间里的家具,买来了就放在那里;
- 自动分配:来你家修水管,修好了就走了;
- 动态分配:需要使用者自己申请(malloc/new)和释放(free/delete),一旦忘记释放,必会造成内存泄露。现有垃圾回收机制,但此机制也存在问题;
js内部,用到的是mark-sweep算法,产生内存泄露的几个例子:循环引用,闭包。。。具体看文章里吧,还是要有点耐心的。
大学时学过闭包,这会竟想不起来其概念,又去查了下.....
闭包:通俗性讲就是使外部函数可以访问函数内部的局部变量。