论坛首页 Web前端技术论坛

js内存释放问题

浏览 4779 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (9) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-20  
function aa()
{ var obj={};
//obj=document.getElementById("DivElement");
// document.getElementById("DivElement").expandoProperty=obj;
obj.bigString=new Array(300).join(new Array(2000).join("XXXXX"));
obj=null;alaMemGarbage();
//js好像是引用计数系统,每个所引用的对象都会保留一个计数,以获悉有多少对象正在引用它。如果计数为零,该对象就会被销毁,其占用的内存也会返回给堆
//obj已经清空了,但这里为什么没有内存回收???
}
在IE7和firfox下,这个函数参数的内存占用都无法释放,为什么?
请高手帮我解释下
   发表时间:2008-02-20  
var obj=[];
for(var i=0;i<1000;i++)
{
//第一种结构
obj[i+",0"]=[{"ID":3475,"Name":"测试","Telephone":"22222222"},{"ID":3476,"Name":"测试","Telephone":"22222222"}];
//第二种结构
//var obj1[i+",0"]='3475,"测试",22222222|3476,"测试",22222222'

}
好像第二种结构内存占用要少得多

for(var i=0;i<1000;i++)
{
obj[i+",0"]=null;
}
obj=[];
//都清理空了,内存好像没能够释放?
//刷新一次页面,内存也变化一次

//下面这样处理,感觉内存释放了,
//但这样好像逻辑上有问题哟
for(var i=0;i<1000;i++)
{
obj[i+",0"]=null;
obj=[];
}
0 请登录后投票
   发表时间:2008-02-20  
应该是IE 垃圾回收机制问题吧
以前在MSDN看见过垃圾回收的问题`
0 请登录后投票
   发表时间:2008-02-20  
yfgcq 写道
在IE7和firfox下,这个函数参数的内存占用都无法释放,为什么?
请高手帮我解释下


基本常识:垃圾回收不是时刻进行的。引擎只在需要的时候才进行回收。

JScript中可以调用CollectGarbage()强制执行。Rhino中可以调用gc()强制执行。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics